Matlab 基于面积计算删除对象
我有一个小物体的图像。我已经用计算机计算了它们的面积Matlab 基于面积计算删除对象,matlab,image-processing,Matlab,Image Processing,我有一个小物体的图像。我已经用计算机计算了它们的面积 area=regionprops(CC,'Area'); CC是由返回的连接组件 CC=bwconncomp(BW); 现在我需要移除面积小于15的对象(在原始图像中将它们设置为零) 我知道我可以用比regionprops更简单的方法来实现这一点,但我需要从regionprops的输出中实现这一点,因为我将提取regionprops支持的其他属性,并根据这些提取的特征以类似的方式再次过滤图像。有人能帮我完成这项任务吗 在显示两个命令之后
area=regionprops(CC,'Area');
CC是由返回的连接组件
CC=bwconncomp(BW);
现在我需要移除面积小于15的对象(在原始图像中将它们设置为零)
我知道我可以用比
regionprops
更简单的方法来实现这一点,但我需要从regionprops
的输出中实现这一点,因为我将提取regionprops
支持的其他属性,并根据这些提取的特征以类似的方式再次过滤图像。有人能帮我完成这项任务吗 在显示两个命令之后
CC=bwconncomp(BW);
area=regionprops(CC,'Area');
area
是一个结构数组,其中area(ii)。area
是对象ii
的区域。这对应于CC.PixelIdxList{ii}
给出的连接组件
您可以通过以下方式找到面积较小的索引:
I = find([area.Area] < 15);
提供以逗号分隔的向量列表,其中包含像素索引。您可以使用cat
将这些向量合并为一个向量:
pixels = cat(1,CC.PixelIdxList{I});
现在只剩下在输入图像中将这些像素设置为0:
BW(pixels) = 0;
很好的解释!非常感谢你!!
BW(pixels) = 0;