Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

収縮による細い線の除去

この例では、モルフォロジー収縮を使用して、線の幅より近傍の方が大きいバイナリ イメージ内の細い線を除去する方法を説明します。

バイナリ イメージを読み取り、表示します。配線を表す白い線は、幅が 4 ~ 5 ピクセルほどあります。場所によっては配線同士が接しており、全体的な幅は 10 から 11 ピクセルに近くなっています。

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

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

線の幅より大きい近傍を定義します。この例では、近傍全体のサイズが 13 x 13 ピクセルとなるように、半径 7 ピクセルの円板型の構造化要素を使用します。

SE = strel("disk",7)
SE = 
strel is a disk shaped structuring element with properties:

      Neighborhood: [13x13 logical]
    Dimensionality: 2

関数 imerode を使用し、入力イメージと構造化要素を引数として渡してイメージを収縮します。

BW2 = imerode(BW1,SE);

収縮後のイメージを表示します。

imshow(BW2)

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