1

バイナリ イメージが与えられた場合、閉じたコンポーネントを特定し、閉じていないコンポーネントを削除するにはどうすればよいですか?

赤い長方形内のオブジェクトは保持され、他の閉じられていないオブジェクトは削除されます。

ここに画像の説明を入力

4

1 に答える 1

0

bwboundariesを使用して、イメージ内の境界を見つけることができます。適用する前に、穴を識別できるように画像の膨張を実行する必要があります。

I = imread('H2b_1_canny_1.jpg');
BW = im2bw(I, graythresh(I));
se = strel('disk',8);
BW = imdilate(BW,se);

[B,L,N] = bwboundaries(BW);
figure; imshow(BW); hold on;
for k=1:length(B),
    boundary = B{k};
    if(k > N)
        plot(boundary(:,2),...
            boundary(:,1),'g','LineWidth',2);
    else
        plot(boundary(:,2),...
            boundary(:,1),'r','LineWidth',2);
    end
end

穴が強調表示された拡大画像

于 2015-04-17T21:35:33.663 に答える