【Python/OpenCV】Cannyアルゴリズムで輪郭検出(エッジ抽出)

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

【Python】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 + OpenCV

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

方法①


方法②


実行結果

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

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

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

【Python版OpenCV超入門】使い方とサンプルコードを解説
Python版OpenCVで画像処理プログラミングを行う方法を入門者向けにソースコード付きで解説するページです。

コメント