バイナリ イメージが与えられた場合、閉じたコンポーネントを特定し、閉じていないコンポーネントを削除するにはどうすればよいですか?
赤い長方形内のオブジェクトは保持され、他の閉じられていないオブジェクトは削除されます。
バイナリ イメージが与えられた場合、閉じたコンポーネントを特定し、閉じていないコンポーネントを削除するにはどうすればよいですか?
赤い長方形内のオブジェクトは保持され、他の閉じられていないオブジェクトは削除されます。
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