【Python/OpenCV】膨張・収縮フィルタ処理(dilate, erode)

スポンサーリンク

この記事では、Python版OpenCV(cv2.dilate, cv2.erode)もしくはNumPyで膨張・収縮フィルタ処理を実装する方法をソースコード付きで解説します。

スポンサーリンク

膨張・収縮フィルタ

膨張・収縮フィルタとは、二値画像からノイズ除去したりするのに使われるアルゴリズムです。

膨張処理・・・白色(255)の領域を膨張
収縮処理・・・白色(255)の領域を収縮

アルゴリズムの原理については下記事で解説しています。
【参考】膨張・収縮処理の原理・特徴・計算式

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

方法①・・・NumPyで膨張・収縮フィルタのアルゴリズムを書いて実装
方法②・・・cv2.Cannyで簡単に実装(1行で書けちゃうので楽チン)

書式

dst = cv2.dilate(src, kernel, iterations) # 膨張処理
dst = cv2.erode(src, kernel, iterations) # 収縮処理
パラメータ名 説明
src 入力画像
kernel カーネル(1の近傍画素を膨張・収縮処理に利用)
dst 出力画像

ソースコード(Python3+OpenCV3)

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

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

実行結果

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

■入力画像(左)→膨張画像(中央)→収縮画像(右)

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

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

スポンサーリンク

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