我用过bwconvhull
检测图像的某个部分,正如您在图像中看到的那样,有许多具有特定质心的对象。我想做的是检测面积最大的物体(左起第一个大物体)并忽略其他物体。
我应该遵循哪种方法?
我将非常感谢您的帮助。以下是代码(由于我仍在努力,所以写得很粗略。提前抱歉给您带来不便)
CH_objects = bwconvhull(c,'objects');
imshow(CH_objects);
title('Objects Convex Hull');
bwarea(CH_objects)
Ilabel = bwlabel(CH_objects,8);
stat = regionprops(Ilabel,'centroid');
imshow(CH_objects);
hold on;
for x = 1:numel(stat)
plot(stat(x).Centroid(1),stat(x).Centroid(2),'ro');
end
Here https://www.imageshack.com/i/n6qfzbj是图像。
use Area
and PixelIdxList
在regionprops中,这意味着将其编辑为以下行:
stat = regionprops(Ilabel,'Centroid','Area','PixelIdxList');
最大区域及其结构索引由下式给出
[maxValue,index] = max([stat.Area]);
每个区域的像素线性索引由“stat.PixelIdxList”给出,您可以使用它们来删除给定区域(我认为这意味着为其分配零)
YourImage(stat(index).PixelIdxList)=0;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)