OpenCVの描画機能

目標

コード

上記の関数では,以下の共通する引数が与えられます.

  • img: 図形を描画したい画像の場所
  • color: 図形の色.BGRで表現するにはタプルを(eg: 青であれば(255, 0, 0)),グレイスケールであればスカラー値を与えます.
  • thickness: 線や円などの太さ.図形を塗りつぶしたければ -1 を与えます.デフォルトでは thickness = 1 です.
  • lineType: 線のタイプ.8-connnectedかアンチエイリアスな線にするか,等.デフォルトでは 8-connected です.cv2.LINE_AA は見た目のよい曲線となるアンチエイリアスな線になります.

線を描く

線を描くには,線の始点と終点の座標を与える必要があります.黒い画像の上に,青い線を左上から右下に描画します.

黒い画像に青線を描画するプログラム

実行結果

draw_blueline

長方形を描く

長方形を描くには,長方形の左上端と右下端の座標を与える必要があります.

cv2.rectangle(画像,左上端,右下端,色,太さ)

円を描く

円を描くには,中心の座標と半径を与える必要があります.

円を描画するプログラム

実行結果

draw_circle

楕円を描く

楕円を描くには,いくつかの変数を与える必要があります.まずは中心の座標(x,y),次は長径と短径です(長径, 短径).角度は反時計回りの楕円の回転の角度です.starAngleとendAngleは長軸から時計回りのアーク長の始まりと終わりを示します.i.e. 0と360与えれば完全な楕円になります.より詳細な情報は cv2.ellipse() を確認してください.

楕円を描画するプログラム

実行結果

draw_ellipse

ポリゴンを描く

ポリゴンを描くには,頂点座標を与える必要があります.各頂点は1×2行形式の配列にint32型で与える必要があります,

ポリゴンを描画するプログラム

実行結果

draw_polygon

第3引数のisClosedFalseを与えると閉じた図形ではなくすべての点を繋ぎます.

cv2.polylines()は複数の線を描画する事ができます.描画したい線のリストを作りこの関数に与えるだけです.すべての線は独立して描画されます.線のグループを描画するときには cv2.line()でそれぞれの線を描画するよりも高速でよりよい手法です.

画像にテキストを追加する

画像にテキストを追加するには次のことを決める必要があります

  • 描きたいテキストデータ
  • 配置したい位置の座標(i.e. データが始まるのは左下です)
  • フォントタイプ(cv2.putText()ドキュメントでサポートするフォントを確認してください)
  • 色や太さ,線のタイプなどの設定.視認性を良くするためにcv2.LINE_AAの使用が推奨されています

画像にテキストを追加するプログラム

実行結果

add_text2img

sukanpin has written 22 articles

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>