Main Content

モルフォロジー オープニングを使用した大きなイメージの特徴の抽出

モルフォロジー オープニングを使用して、イメージから小さなオブジェクトを除去できます。一方、イメージ内のより大きなオブジェクトの形状とサイズはそのままにできます。

この例では、回路基板のイメージにモルフォロジー オープニングを使用して、そのイメージからすべての回路を除去します。出力イメージにはマイクロチップの四角い形状だけが含まれます。

1 ステップでイメージをオープニング

関数imopenを使用して収縮と膨張を 1 ステップで行えます。

イメージをワークスペースに読み取って表示します。

BW1 = imread('circbw.tif');
figure
imshow(BW1)

Figure contains an axes object. The axes object contains an object of type image.

構造化要素を作成します。構造化要素は、イメージを収縮させる場合、ラインを除去するために十分な大きさが必要になります。ただし、あまり大き過ぎると、四角形の部分も除去することになります。構造化要素はすべて 1 の要素として、それにより前景ピクセルの中で大きな隣り合ったパッチのみが残ります。

SE = strel('rectangle',[40 30]);

イメージをオープニング処理します。

BW2 = imopen(BW1, SE);
imshow(BW2);

Figure contains an axes object. The axes object contains an object of type image.

収縮の後に膨張を実行してイメージをオープニング

収縮と膨張を連続して行うこともできます。

構造化要素を使用してイメージを収縮させます。これによって、ラインはすべて除去されますが、四角形も小さくなります。

BW3 = imerode(BW1,SE);
imshow(BW3)

Figure contains an axes object. The axes object contains an object of type image.

四角形をオジリナル サイズで復元し、同じ構造化要素 SE を使用して、イメージの膨張と収縮を行います。

BW4 = imdilate(BW3,SE);
imshow(BW4)

Figure contains an axes object. The axes object contains an object of type image.

処理を連続して行うことで、構造化要素を柔軟に変更できます。別の構造化要素を作成し、新しい構造化要素を使用して収縮したイメージを拡大します。

SE = strel('diamond',15);
BW5 = imdilate(BW3,SE);
imshow(BW5)

Figure contains an axes object. The axes object contains an object of type image.

参考

| | | |

関連するトピック