【Python/OpenCV】Cannyアルゴリズムで輪郭検出

スポンサーリンク

この記事では、Python版OpenCV(cv2.Canny)もしくはNumPyでCannyアルゴリズムを実装し、エッジ検出する方法をソースコード付きで解説します。

スポンサーリンク

Cannyアルゴリズム

Cannyアルゴリズムとは、画像から輪郭を取り出すアルゴリズムです。
アルゴリズムの原理については下記事で解説しています。
【参考】Cannyエッジ検出器の原理・特徴・計算式

今回は、以下の2通りの方法で処理を実装してみました。

方法①・・・NumPyでCannyアルゴリズムを書いて実装(大変だが原理の勉強にはなる)
方法②・・・cv2.Cannyで簡単に実装(1行で書けちゃうので楽チン)

cv2.Cannyの書式

dst = cv2.Canny(src, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]])
パラメータ名 説明
src 入力画像
threshold1 最小閾値(Hysteresis Thresholding処理で使用)
threshold2 最大閾値(Hysteresis Thresholding処理で使用)

ソースコード(Python3+OpenCV3)

サンプルプログラムのソースコードです。

※動作には、OpenCVとNumPyライブラリが必要です。
ライブラリの導入方法:【Python3】OpenCV3+NumPyをインストール

実行結果

サンプルプログラムの実行結果です。

■入力画像(左)と出力画像(右)

お借りした画像:プロ生ちゃん(暮井 慧)

【おすすめ記事】
PythonでOpenCV入門 サンプル集
【Python】画像処理プログラミング入門
【画像処理入門】アルゴリズム&プログラミング

スポンサーリンク

シェア&フォローお願いします!