Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Matlab中求连接件的最小孔和最大孔_Matlab - Fatal编程技术网

在Matlab中求连接件的最小孔和最大孔

在Matlab中求连接件的最小孔和最大孔,matlab,Matlab,如何在连接组件分析的图像中查找最小和最大孔。我已经做了如何找到洞:(下面的代码) 通过最小和最大孔,我假设你指的是最小和最大面积的孔。您可以使用regionprops查找连接组件的区域。但首先你必须区分洞和背景。因此,我们排除了与图像边界接触的组件 lbl = bwlabel(~BW); holes = ~(BW|ismember(lbl,unique([lbl([1 end],:) lbl(:,[1 end])']))); 现在,您需要找到剩余组件的最小和最大面积 rp = regionpr

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


通过最小和最大孔,我假设你指的是最小和最大面积的孔。您可以使用
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]);

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

我在执行代码时出错。错误是在调用regionprops之前使用bwlabel(BW)或double(BW)将二进制图像转换为标签矩阵。您可能使用的Matlab版本与我不同。在任何情况下,只需按照它所说的去做:
rp=regionprops(bwlab(holes))我必须在连接的组件(CC)中找到最小和最大大小的孔。当我使用regionprops(bwlabel(holes))执行时,它将打印min_hole_area=[],max_hole_area=[],不会打印任何值。如果得到的结果为空,则表明图像中没有孔。可能吗?使用
imshow(孔)
imshow(BW)
进行查看。如果你能发布你想使用的图片,这可能也会很有帮助。
rp = regionprops(holes);
min_hole_area = min([rp.Area]);
max_hole_area = max([rp.Area]);