Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.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_Image Processing - Fatal编程技术网

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;