描画処理

目的

ここではウィンドウに点や線を描画する処理について学ぶ.描画処理は画像処理ではないが,画像処理結果を点や線で描画することがあるため,そのような場合に使用される処理である.

説明

線の描画

ウィンドウに線を描画してみよう.

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

ウィンドウに様々な四角形を描画せよ.