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

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

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

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

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

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

膨張処理(Dilation)

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

収縮処理(Erosion)

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

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

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

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

クロージング処理の例

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

関連ページ

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

https://algorithm.joho.info/programming/python/opencv-dilate-erode-py/
画像処理
「画像処理」の記事一覧です。
この記事を書いた人
西住技研

在学中はシステム制御理論や画像処理、機械学習を専攻分野として研究していました。就職後は、プログラミング(Python)を活用したデータ分析や作業自動化に取り組み、現在に至ります。そこで得たノウハウをブログで発信しています。
YoutubeX(旧Twitter)でも情報発信中です

西住技研をフォローする
画像処理

コメント