2013-04-15 36 views

回答

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]); 

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

+0

执行代码时出现错误。该错误是在调用regionprops之前使用bwlabel(BW)或double(BW)将二进制图像转换为标签矩阵的 。 – user2127060

+0

您可能正在使用与我不同的Matlab版本。在任何情况下,只要做它所说的:'rp = regionprops(bwlabel(holes));' – nhowe

+0

我必须在连接组件(CC)中找到最小和最大尺寸的洞。当我执行使用regionprops(bwlabel ),它将打印min_hole_area = [],max_hole_area = [],将不打印任何值。 – user2127060

相关问题