在Matlab中查找连通分量的最小和最大孔

时间:2013-04-15 17:48:39

标签: matlab

如何在连通分量分析的图像中找到最小和最大孔。我已经做了如何找到洞:(代码下面)

I = imread('1.jpg');

B=bwlabel(I);

level = graythresh(I);

BW = im2bw(I,level);

numb=bweuler(BW,4);

1 个答案:

答案 0 :(得分:0)

通过最小和最大孔,我认为你的意思是最小和最大面积的孔。您可以使用regionprops查找已连接组件的区域。但首先你要区分洞和背景。因此,我们排除了触摸图像边框的组件。

lbl = bwlabel(~BW);
holes = ~(BW|ismember(lbl,unique([lbl([1 end],:) lbl(:,[1 end])'])));

现在您要查找剩余组件的最小和最大区域。

rp = regionprops(holes);
min_hole_area = min([rp.Area]);
max_hole_area = max([rp.Area]);

你没有说你是否只想要像素的区域或地图。您可以获得最小/最大孔的索引,但通常它可能不是唯一的。