関数 > 画像処理 > モルフォロジー処理 > 例: グレースケールモルフォロジー
例: グレースケールモルフォロジー
グレースケールモルフォロジー関数を使用して、画像のモチーフを構成する要素を抽出します。細部のコントラストが潰れるため、各要素の大まかな形をはっきり示すことにもなります。
この例の使用方法については、画像処理の例についてを参照してください。
gray_erode
2 値侵食では、構造要素を使用して、各ピクセルの近傍を定義します。このピクセル近傍内に背景ピクセルがある場合、前景が背景になります。グレースケール侵食はこの拡張であり、入力画像のピクセル値から構造要素のピクセル値が減算されます。出力は、構造要素の境界内で最小となるピクセルの値です。
1. 5 x 4 の逐次行列を作成します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
2. 単純な構造要素を作成します。
クリックしてこの式をコピー
3. gray_erode関数を使用して、構造要素の原点を (0,0) としたグレースケール侵食を実行します。
クリックしてこの式をコピー
4. 新しい行列を計算します。右端の列と一番下の行 (境界条件) 以外は結果が M - 1 になります。
クリックしてこの式をコピー
クリックしてこの式をコピー
5. READ_IMAGE関数を使用して画像を読み込みます。
クリックしてこの式をコピー
6. 5 x 5 の構造要素を作成し、その中心 (2, 2) を原点として、さらにリアルな画像を侵食します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
7. gray_erode 関数を新しい画像に適用し、WRITEBMP関数を使用して、これをファイルに保存します。
クリックしてこの式をコピー
クリックしてこの式をコピー
8. 元の画像と侵食後の画像を比較します。
(lena.bmp)
(lena_le.bmp)
予想どおり、画像は全体的に暗くなり、暗い領域が拡大し、一部の明るいディテールは消滅しました。
gray_dilate
2 値膨張では、構造要素を使用して各ピクセルを中心とした近傍を定義し、その近傍内に前景ピクセルが 1 つでもある場合には背景が前景になります。
1. 前の手順と同じ逐次行列と構造要素を使用します。
クリックしてこの式をコピー
クリックしてこの式をコピー
2. gray_dilate関数を使用して、構造要素の原点を (0,0) としたグレースケール膨張を実行します。
クリックしてこの式をコピー
3. 新しい行列を計算します。右端の列と一番下の行 (境界条件) 以外は結果が M + 1 になります。
クリックしてこの式をコピー
クリックしてこの式をコピー
4. 前の画像に gray_dilate 関数を適用します。
クリックしてこの式をコピー
クリックしてこの式をコピー
5. 元の画像と膨張後の画像を比較します。
(lena.bmp)
(lena_ld.bmp)
膨張処理の結果、全体的に明るくなり、明るい領域が拡大し、小さな暗いディテールは消滅しました。
gray_open、gray_close
グレースケールオープニングとグレースケールクロージングの定義方法は 2 値モルフォロジーのオープニング/クロージングとほぼ同じであり、オープニングではグレースケール侵食に続けてグレースケール膨張を行い、クロージングではグレースケール膨張に続けてグレースケール侵食を行います。
gray_openおよびgray_closeを逐次行列に適用し、侵食と膨張を続けて実行したときと同じ結果になっていることを確認します。
1. 逐次行列にグレースケールオープニングを適用します。
クリックしてこの式をコピー
2. 構造要素の原点を (0,0) として、逐次行列にグレースケール侵食を適用します。
クリックしてこの式をコピー
3. 構造要素の原点を (0,0) として、侵食後の行列にグレースケール膨張を適用します。
クリックしてこの式をコピー
4. グレースケールオープニングの結果が、グレースケールの侵食と膨張を続けて実行したときの結果と同じになっていることを確認します。
クリックしてこの式をコピー
5. 逐次行列にグレースケールクロージングを適用します。
クリックしてこの式をコピー
6. 構造要素の原点を (0,0) として、逐次行列にグレースケール膨張を適用します。
クリックしてこの式をコピー
7. 構造要素の原点を (0,0) として、膨張後の行列にグレースケール侵食を適用します。
クリックしてこの式をコピー
8. グレースケールクロージングの結果が、グレースケールの膨張と侵食を続けて実行したときの結果と同じになっていることを確認します。
クリックしてこの式をコピー
9. テスト画像 L にこれらの関数を適用し、膨張、侵食、オープニング、およびクロージング処理後の画像を比較します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
(lena_ld.bmp)
(lena_le.bmp)
(lena_lc.bmp)
(lena_lo.bmp)
グレースケールオープニング/クロージングでは明るさが微妙に変化し、膨張と侵食では大きく変化しています。膨張とクロージングではどちらも明るい部分が広がって暗い部分が縮まり、侵食とオープニングでは暗い部分が広がって明るい部分が縮まっています。
これは役に立ちましたか?