【画像処理】膨張・収縮処理の原理・特徴・計算式

この記事では、画像処理における膨張・収縮処理の原理や特徴、計算式についてまとめました。

膨張・収縮処理のアルゴリズム(原理)

本ページの内容は以下動画で解説しています。

膨張処理(Dilation)とは、二値画像の白色領域を増やす処理です。
収縮処理(Erosion)では、逆に白色領域を減らします。

単純なアルゴリズムと処理ですが、ノイズの除去などで活躍します。

膨張処理(Dilation)

注目画素の近傍に白色の画素が1つでも存在すれば、注目画素を白色に置き換えます。
■8近傍の場合

収縮処理(Erosion)

注目画素の近傍に黒色の画素が1つでも存在すれば、注目画素を黒色に置き換えます。
■8近傍の場合

オープニング処理とクロージング処理

膨張処理と収縮処理はそれぞれ単独で利用するのでなく、組み合わせて利用するのが一般的です。
その代表例を以下にまとめました。

名称 手順 主な用途
オープニング処理 「収縮処理」した後に同じ回数だけ「膨張処理」をする 白色のノイズ除去
クロージング処理 「膨張処理」した後に同じ回数だけ「収縮処理」をする 黒色のノイズ除去
グラジエント処理 「膨張処理した画像」から「収縮処理した画像」を引く エッジ抽出など
トップハット処理 「元画像」から「オープニング処理した画像」を引く エッジ抽出など
トップハット処理 「オープニング処理した画像」から「元画像」を引く エッジ抽出など

クロージング処理の例

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

関連ページ

Python+OpenCVで実装する方法を以下ページで解説しています。

https://algorithm.joho.info/programming/python/opencv-dilate-erode-py/
【画像処理入門】アルゴリズム&プログラミング
この記事では、画像処理における基本的なアルゴリズムとその実装例(プログラム)についてまとめました。

コメント