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