python opencv一般的な図形描画方法(線分、長方形、円形、楕円形、テキスト)
最近はpython opencvを勉強しました。opencvを使って絵によく使われる図形を描く方法を教えてください。
例では、画像に線分、円形、長方形、楕円形を追加し、テキストを追加する方法を実現しました。
実現方法
1)線分cv.lineを描く
画像に直線を描画します。
パラメータ
値
説明
パラメータ1
img
元の画像
パラメータ2
(60,40)
線分始点座標(ピクセル)
パラメータ3
(90,90)
線分終点座標(ピクセル)
引数4
(255,255,255)
BGR色(0-255)
パラメータ5
2
線分の幅
2)円を描くcv.circle
図に円を描く
パラメータ
値
説明
パラメータ1
img
元の画像
パラメータ2
(140,120)
中心の座標(ピクセル)
パラメータ3
60
円の半径(ピクセル)
引数4
(0,0,255)
BGR色(0-255)
パラメータ5
2
線分の幅は-1の時に塗りつぶします。
3)長方形を描くcv.rectangle
画像に長方形を描画します。
パラメータ
値
説明
パラメータ1
img
元の画像
パラメータ2
(220,50)
左上の座標(ピクセル)
パラメータ3
(380、220)
右下の座標(ピクセル)
引数4
(0,255,0)
BGR色(0-255)
パラメータ5
2
線分の幅は-1の時に塗りつぶします。
4)楕円形cv.ellipseを描く。
絵に楕円形を描くと、ここはパラメータが多くなります。
パラメータ
値
説明
パラメータ1
img
元の画像
パラメータ2
(60,20)
楕円中心座標(ピクセル)
パラメータ3
(60,20)
楕円横・縦の距離(ピクセル)
引数4
0
楕円傾斜角度(0-360)
パラメータ5
0
始点角度(0-360)を描画します。
パラメータ6
0
終点の角度(0-360)を描画します。
パラメータ7
(255,255,255)
BGR色(0-255)
パラメータ8
2
線分の幅は-1の時に塗りつぶします。
5)テキストcv.put Textを追加する
画像にテキストを追加して内容を表示します。
パラメータ
値
説明
パラメータ1
img
元の画像
パラメータ2
「phone」
テキストの内容
パラメータ3
(15、30)
テキストの左上の座標位置(ピクセル)
引数4
cv 2.FONT_HERSHEY_COMPLEX
テキストの種類
パラメータ5
1
テキストのサイズ
パラメータ7
(255,255,255)
BGR色(0-255)
パラメータ8
1
フォントの太さ
文字の種類は主に以下の通りです。
1、cv.FONT_HERSHEY_SIM PLEXノーマルサイズライニングなし
2、cv.FONT_HERSHEY_PLAN小さいサイズのサンセリフがありません。
3、cv.FONT_HERSHEY_DUPLEXノーマルサイズ(タイプ1のコピー)
4、cv.FONT_HERSHEY_COMPLEX正常サイズはライニングがあります。
5、cv.FONT_HERSHEY_TRIPLEX通常サイズはライニングがあります(タイプ4の複雑版)。
6、cv.FONT_HERSHEY_COMPLEX_SMALL(タイプ4の小さいサイズ)
7、cv.FONT_HERSHEY_SCRIPT_SIM PLEX手書きスタイル
8、cv.FONT_HERSHEY_SCRIPT_COMPLEX(タイプ7の複雑版)
以上のフォントは試してみてもいいです。違った効果が見られます。
完全コード
例では、画像に線分、円形、長方形、楕円形を追加し、テキストを追加する方法を実現しました。
実現方法
1)線分cv.lineを描く
画像に直線を描画します。
#
# 1:
# 2:
# 3:
# 4:BGR
# 5:
cv2.line(img, (60, 40), (90, 90), (255, 255, 255), 2);
パラメータの説明パラメータ
値
説明
パラメータ1
img
元の画像
パラメータ2
(60,40)
線分始点座標(ピクセル)
パラメータ3
(90,90)
線分終点座標(ピクセル)
引数4
(255,255,255)
BGR色(0-255)
パラメータ5
2
線分の幅
2)円を描くcv.circle
図に円を描く
#
# 1:
# 2:
# 3:
# 4:BGR
# 5: -1
cv2.circle(img, (140, 120), 60, (0, 0, 255), 2);
パラメータの説明パラメータ
値
説明
パラメータ1
img
元の画像
パラメータ2
(140,120)
中心の座標(ピクセル)
パラメータ3
60
円の半径(ピクセル)
引数4
(0,0,255)
BGR色(0-255)
パラメータ5
2
線分の幅は-1の時に塗りつぶします。
3)長方形を描くcv.rectangle
画像に長方形を描画します。
#
# 1:
# 2:
# 3:
# 4:BGR
# 5: -1
cv2.rectangle(img, (220, 50), (380, 220), (0, 255, 0), 2);
パラメータの説明パラメータ
値
説明
パラメータ1
img
元の画像
パラメータ2
(220,50)
左上の座標(ピクセル)
パラメータ3
(380、220)
右下の座標(ピクセル)
引数4
(0,255,0)
BGR色(0-255)
パラメータ5
2
線分の幅は-1の時に塗りつぶします。
4)楕円形cv.ellipseを描く。
絵に楕円形を描くと、ここはパラメータが多くなります。
#
# 1:
# 2:
# 3:
# 4:
# 5:
# 6:
# 7:BGR
# 8: -1
cv2.ellipse(img, (60, 20), (60, 20), 0, 0, 360, (255, 255, 255), 2);
パラメータの説明パラメータ
値
説明
パラメータ1
img
元の画像
パラメータ2
(60,20)
楕円中心座標(ピクセル)
パラメータ3
(60,20)
楕円横・縦の距離(ピクセル)
引数4
0
楕円傾斜角度(0-360)
パラメータ5
0
始点角度(0-360)を描画します。
パラメータ6
0
終点の角度(0-360)を描画します。
パラメータ7
(255,255,255)
BGR色(0-255)
パラメータ8
2
線分の幅は-1の時に塗りつぶします。
5)テキストcv.put Textを追加する
画像にテキストを追加して内容を表示します。
#
# 1:
# 2:
# 3:
# 4:
# 5:
# 6:BGR
# 7:
cv2.putText(img, "phone", (15, 30), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 1);
パラメータの説明パラメータ
値
説明
パラメータ1
img
元の画像
パラメータ2
「phone」
テキストの内容
パラメータ3
(15、30)
テキストの左上の座標位置(ピクセル)
引数4
cv 2.FONT_HERSHEY_COMPLEX
テキストの種類
パラメータ5
1
テキストのサイズ
パラメータ7
(255,255,255)
BGR色(0-255)
パラメータ8
1
フォントの太さ
文字の種類は主に以下の通りです。
1、cv.FONT_HERSHEY_SIM PLEXノーマルサイズライニングなし
2、cv.FONT_HERSHEY_PLAN小さいサイズのサンセリフがありません。
3、cv.FONT_HERSHEY_DUPLEXノーマルサイズ(タイプ1のコピー)
4、cv.FONT_HERSHEY_COMPLEX正常サイズはライニングがあります。
5、cv.FONT_HERSHEY_TRIPLEX通常サイズはライニングがあります(タイプ4の複雑版)。
6、cv.FONT_HERSHEY_COMPLEX_SMALL(タイプ4の小さいサイズ)
7、cv.FONT_HERSHEY_SCRIPT_SIM PLEX手書きスタイル
8、cv.FONT_HERSHEY_SCRIPT_COMPLEX(タイプ7の複雑版)
以上のフォントは試してみてもいいです。違った効果が見られます。
完全コード
import cv2
# 。
img = cv2.imread("img.jpeg");
#
# 1:
# 2:
# 3:
# 4:BGR
# 5:
cv2.line(img, (60, 40), (90, 90), (255, 255, 255), 2);
#
# 1:
# 2:
# 3:
# 4:BGR
# 5: -1
cv2.circle(img, (140, 120), 60, (0, 0, 255), 2);
#
# 1:
# 2:
# 3:
# 4:
# 5:
# 6:
# 7:BGR
# 8: -1
cv2.ellipse(img, (60, 20), (60, 20), 0, 0, 360, (255, 255, 255), 2);
#
# 1:
# 2:
# 3:
# 4:BGR
# 5: -1
cv2.rectangle(img, (220, 50), (380, 220), (0, 255, 0), 2);
#
# 1:
# 2:
# 3:
# 4:
# 5:
# 6:BGR
# 7:
cv2.putText(img, "phone", (15, 30), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 0, 255), 1);
cv2.putText(img, "36.4C", (250, 250), cv2.FONT_HERSHEY_COMPLEX, 1, (0, 255, 0), 2);
#
cv2.imshow("title", img);
# ,
cv2.waitKey(0);
#
cv2.destroyAllWindows();
ここで、python opencvに関する一般的な図形描画方法(線分、長方形、円形、楕円形、テキスト)の文章を紹介します。これに関連して、python opencv図形描画の内容は以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。