この記事では、画像処理における膨張・収縮処理の原理や特徴、計算式についてまとめました。
【膨張・収縮処理とは】アルゴリズム/原理を紹介
膨張処理(Dilation)とは、二値画像の白色領域を増やす処理です。
収縮処理(Erosion)では、逆に白色領域を減らします。
単純なアルゴリズムと処理ですが、ノイズの除去などで活躍します。
動画解説
膨張処理(Dilation)
注目画素の近傍に白色の画素が1つでも存在すれば、注目画素を白色に置き換えます。
■8近傍の場合
収縮処理(Erosion)
注目画素の近傍に黒色の画素が1つでも存在すれば、注目画素を黒色に置き換えます。
■8近傍の場合
【利用方法】オープニング処理、クロージング処理
膨張処理と収縮処理はそれぞれ単独で利用するのでなく、組み合わせて利用するのが一般的です。
その代表例を以下にまとめました。
名称 | 手順 | 主な用途 |
---|---|---|
オープニング処理 | 「収縮処理」した後に同じ回数だけ「膨張処理」をする | 白色のノイズ除去 |
クロージング処理 | 「膨張処理」した後に同じ回数だけ「収縮処理」をする | 黒色のノイズ除去 |
グラジエント処理 | 「膨張処理した画像」から「収縮処理した画像」を引く | エッジ抽出など |
トップハット処理 | 「元画像」から「オープニング処理した画像」を引く | エッジ抽出など |
トップハット処理 | 「オープニング処理した画像」から「元画像」を引く | エッジ抽出など |
クロージング処理の例
■入力画像(左)→膨張画像(中央)→収縮画像(右)
– | 関連記事 |
---|---|
1 | 【Python/OpenCV】膨張・収縮フィルタ処理(dilate, erode) |
2 | 【画像処理入門】アルゴリズム&プログラミング |
コメント