目的
ここではウィンドウに点や線を描画する処理について学ぶ.描画処理は画像処理ではないが,画像処理結果を点や線で描画することがあるため,そのような場合に使用される処理である.
説明
線の描画
ウィンドウに線を描画してみよう.
6行目から9行目で,解像度320×240のカラー画像を作成し,白で塗りつぶしている.11行目から13行目のようにOpenCVのline関数を使用することで画像に線分を描画することができる.キーワード引数pt1には線分の開始点の座標を,pt2には終了点の座標を指定する.キーワード引数colorには線の色を,thicknessには線の太さを指定することができる.また,キーワード引数lineTypeにcv2.LINE_4を指定すると4連結で線が描画され,cv2.LINE_8を指定すると8連結で線が描画され,cv2.LINE_AAを指定するとアンチエイリアスされた線が描画される.実行すると以下のような3つの線分が表示される.
点の描画
次に,点を描画してみよう.
点を描画するには,11行目から13行目のように開始点と終了点が同じである線分を描画すればよい.実行すると以下のような3つの点が表示される.
円の描画
円を描画するには以下のようにすればよい.
11行目から13行目のように,OpenCVのcircle関数を,キーワード引数centerに円の中心の座標を,radiusに円の半径を指定して呼び出すことで,画像に円を描画することができる.また,キーワード引数thicknessにcv2.FILLEDを指定すると,円の内側を塗りつぶすことができる.実行すると以下のような3つの円が表示される.
長方形の描画
長方形を描画するには以下のようにすればよい.
11行目から13行目のように,OpenCVのrectangle関数を,キーワード引数pt1とpt2に長方形の対角の点の座標を指定して呼び出すことで,画像に長方形を描画することができる.実行すると以下のような3つの長方形が表示される.
文字列の描画
文字列を描画するには以下のようにすればよい.
11行目から26行目のように,OpenCVのputText関数を,キーワード引数textに描画する文字列を,orgに描画する位置を,fontFaceにフォントの種類を,fontScaleにフォントの大きさを指定して呼び出すことで,画像に文字列を描画することができる.また,28行目から43行目のように,キーワード引数fontFaceにcv2.FONT_ITALICを指定することで,斜体字の文字列を描画することができる.実行すると以下のように文字列が表示される.
課題
課題0
画ウィンドウに様々な点を描画せよ.
課題1
ウィンドウに様々な円を描画せよ.
課題2
ウィンドウに様々な線を描画せよ.
課題3
ウィンドウに様々な長方形を描画せよ.
課題4
ウィンドウに様々な文字列を描画せよ.
課題5
ウィンドウに様々な平行四辺形を描画せよ.
課題6
ウィンドウに様々な四角形を描画せよ.