OpenCV cv::Scalar

  • このエントリーをはてなブックマークに追加

OS:windows7 64bit (自作機)



OpenCV2.3.0において、cv::Scalarはcv::circleで円を描くときなどに 円の色を指定するのに使う。cv::Scalarの引数は3つで色を決める。 青色ならばcv::Scalar(255,0,0)となる。 cv::Scalar( r g, b)でなくcv::Scalar( b, g, r )であり、何故かrとbが逆転している。 これでは使いづらいので、r,g,bの順にする。 C言語では、次のように定義したら可能になる。


#define CV_RGB( r, g, b ) cv::Scalar( b, g, r )

このようにして、cv::Scalarの代わりにCV_RGBを使用する。 rgbで色を数字で指定するよりも色の名前で指定した方がコードが読みやすいと判断したので、 CV_RGBの色の指定を色の名前で呼び出せるようにした。 下記の16色を定義した。この色はwebで使われる基本の16色の名前である。


#define black CV_RGB( 0, 0, 0)
#define gray CV_RGB( 128, 128, 128)
#define silver CV_RGB( 192, 192, 192)
#define white CV_RGB( 255, 255, 255)

#define red CV_RGB( 255, 0, 0)
#define yellow CV_RGB( 255, 255, 0)
#define limey CV_RGB( 0, 255, 0)
#define aqua CV_RGB( 0, 255, 255)

#define blue CV_RGB( 0, 0, 255)
#define fuchsia CV_RGB( 255, 0, 255)
#define maroon CV_RGB( 128, 0, 0)
#define olive CV_RGB( 128, 128, 0)

#define green CV_RGB( 0, 128, 0)
#define teal CV_RGB( 0, 0, 128)
#define navy CV_RGB( 0, 128, 128)
#define purple CV_RGB( 128, 0, 128)

参考
OpenCV プログラミング解説

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*