use*_*838 6 matlab image-processing object matrix area
我曾经习惯于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
Run Code Online (Sandbox Code Playgroud)
这是图像.
bla*_*bla 11
使用Area
和PixelIdxList
在regionprops中,这意味着编辑到以下行:
stat = regionprops(Ilabel,'Centroid','Area','PixelIdxList');
Run Code Online (Sandbox Code Playgroud)
最大区域及其结构索引由下式给出
[maxValue,index] = max([stat.Area]);
Run Code Online (Sandbox Code Playgroud)
每个区域的像素线性索引由`stat.PixelIdxList'给出,您可以使用它们来删除给定区域(我假设这意味着为它分配零)
YourImage(stat(index).PixelIdxList)=0;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9718 次 |
最近记录: |