OpenCV の描画処理について (rectangle)

はじめに

 OpenCV のrectangleを使った四角形描画ついて調べたことをまとめた。

とりあえずOpenCVを試してみたい方

実験用プログラム OpenCV_test の GitHubリポジトリ
URL
https://github.com/iryachi/OpenCV_test
実行ファイルだけ
https://github.com/iryachi/OpenCV_test/releases
使い方
https://iryachi.stars.ne.jp/opencv_test_imple/

rectangle関数について

関数1

void cv::rectangle(InputOutputArray img,
Point pt1,
Point pt2,
const Scalar& color,
int thickness = 1,
itn lineType = LINE_8,
int shift = 0
)

引数1

imageInputOutputArray入出力画像四角形を描画する画像。 出力用の画像は作られず、この画像に直接描画される。
pt1Pointポイント1四角形の左上の点
pt2Pointポイント2四角形の右下の点
colorScalar線色描画線の色 グレイ画像の場合は B の数値を反映
thicknessint線幅描画線の幅 負の時、塗りつぶし
lineTypeint線描画方法線描画時のアンチエイリアス方法
shiftint小数点ビット数描画ポイント指定を細かくできる。 x / (2^shift) になる pt1 が (256, 10)とすると、 shift = 1 の時 (128, 5) shift = 3 の時 (32, 1.25)  になる (多分)

関数2

void cv::rectangle(InputOutputArray img,
Rect rec,
const Scalar& color,
int thickness = 1,
itn lineType = LINE_8,
)

引数2

imageInputOutputArray入出力画像同上
recRect描画範囲描画する四角形
colorScalar線色同上
thicknessint線幅同上
lineTypeint線描画方法同上
shiftint小数点ビット数同上

使用例

終わりに

Roi とか物体検出とかするとどこを処理したのかわかるように四角形で表示することが出てくる。描画が元の画像に描かれるということだけ気をつけておけば、特に問題になることは無いと思う。
lineType と shift は特に気にしたこと無し。