OpenCVを使用してPythonで画像の単純なエッジ検出を実行する

OpenCVを使用して、画像解析を行う場合に重要なエッジ検出をPythonで実行してみます。

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

■Python

Pythonバージョン

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

■画像を用意する

OpenCVモジュールを使用してPythonで画像の単純なエッジ検出を実行する前に、まずエッジ検出を実行するための画像を用意します。

今回は「traffic_jam_sample.jpg」という車が渋滞している画像を用意しました。画像は著作権フリーの画像を使用しています。

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

■画像の単純なエッジ検出を実行する

画像の用意ができましたので、OpenCVモジュールを使用して画像の単純なエッジ検出を実行するスクリプトを書いていきます。

■コード

import cv2

image = cv2.imread(r'C:\Users\user\test\traffic_jam_sample.jpg')

grayimage= cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

canny = cv2.Canny(image, 50,150)

cv2.imshow('traffic_jam',canny)
cv2.waitKey(0)
cv2.destroyAllWindows()

インポートでcv2(OpenCV)モジュールを呼び出して、imread()関数で今回用意した画像を読み込みます。読み込んだ画像を、画像と解析を単純化し計算量を大幅に削減するために、画像をグレースケールに変換するために、cv2.cvtColor()関数で、第2のパラメーターに「cv2.COLOR_RGB2GRAY」と記述し、RGB形式の画像をグレースケール形式の画像に変換する。

その後、エッジ検出を実行するために、cv2.canny()関数を使います。第2,第3のパラメーターには、しきい値処理に使う数値を設定します。今回は(50,150)と設定しています。

エッジ検出を実行したものを、cv2.imshow()関数で表示してみます。

■実行

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

実行してみると、ウインドウが表示され、今回用意した画像の単純なエッジ検出がされていることを確認できました。

コメント

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