OpenCVを使用してPythonで線を引く

OpenCVモジュールを使用してPythonで線を引いてみます。

OpenCVモジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■Python

Pythonバージョン

今回のPythonのバージョンは、「3.8.2」を使用しています。(Windows10)

■画像を用意する

OpenCVモジュールを使用してPythonで線を引く前に、まず線を引く画像を用意します。

今回は「img_sample.png(500px × 500px)」の水色の画像を用意しました。

保存されている場所は「C:\Users\user\test(フォルダパス)」です。

■直線を引く

画像の用意ができましたので、OpenCVモジュールを使用してPythonで直線を引くスクリプトを書いていきます。

■コード

import cv2

img= cv2.imread(r'C:\Users\user\test\img_sample.png')

cv2.line(img, pt1=(100,300), pt2=(400,300), color=(0,0,255), thickness=10)

cv2.imshow('straightline',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

インポートで、cv2(OpenCV)モジュールを呼び出して、imread()関数で今回用意した画像を読み込みます。読み込んだ画像に直線を引くために、cv2.line()関数を使います。()の中には、第1の値には、読み込んだ画像を指定し、第2の値は、行の開始位置を指定します。今回の場合では直線をポイント(100,300)から開始すると指定しています。第3の値は、行の終わりを指定します。今回の場合ではポイント(400,300)で終了するように指定しています。第4の値は、線の色を指定しています。RGBフォーマットで色を指定できます。今回は(0,0,255)なので赤色を指定しています。

第5の値は、線の境界線の太さを指定しています。

cv2.line()関数で直線を引いた後は、cv2.imshow()関数で画像を表示します。

■実行

今回のスクリプトを「draw_straightline.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、ウインドウが表示され今回用意した画像に直線が引かれていることが確認できました。

■垂直線を引く

Pythonで直線を引くことができましたので、次に垂直線も引いてみます。

■コード

import cv2

img= cv2.imread(r'C:\Users\user\test\img_sample.png')

cv2.line(img, pt1=(100,100), pt2=(100,400), color=(0,0,255), thickness=10)

cv2.imshow('straightline',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

垂直線を引く場合は、cv2.line()関数の()内の第2の値である行の開始位置と、第3の値である行の終わりを変更します。それ以外は、直線を引いた時と同じです。

■実行

このスクリプトを「draw_verticalline.py」という名前で改めて保存し、コマンドプロンプトから実行してみます。

実行してみると、ウインドウが表示され用意した画像に垂直線が引かれていることが確認できました。

■対角線を引く

垂直線を引くことができましたので、対角線も引いてみます。

■コード

import cv2

img= cv2.imread(r'C:\Users\user\test\img_sample.png')

cv2.line(img, pt1=(100,100), pt2=(400,400), color=(0,0,255), thickness=10)

cv2.imshow('Diagonal',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

対角線を引く場合も垂直線を引いた時と同じで、cv2.line()関数の()内の第2の値である行の開始位置と、第3の値である行の終わりを変更します。それ以外の箇所は変更はしません。

■実行

このスクリプトを「draw_diagonal.py」という名前で改めて保存し、コマンドプロンプトから実行してみます。

実行してみると、ウインドウが表示され用意した画像に対角線が引かれていることが確認できました。

コメント

タイトルとURLをコピーしました