0

我有一个包含几个分离区域的二进制图像。我想在这些区域占据的区域(像素数)上设置一个阈值,方式如下:如果一个区域的像素少于阈值,则该区域将被省略。我已经尝试过这些代码(使用bwconncomp):

[...]
% let's assume threshold = 50
CC = bwconncomp(my_image);
L = labelmatrix(CC); 
A = cell( size(CC.PixelIdxList,1) , size(CC.PixelIdxList,2) );
A = CC.PixelIdxList;
for column = 1 : size(CC.PixelIdxList,2)
   if numel(CC.PixelIdxList{column}) < 50, A{column} = 0;
   end
end

但此时我不知道如何将单元格C转换回我的图像形状然后显示它!有什么技巧可以做到这一点吗?

有没有比我在这里使用的更容易和更直接的方法来获取图像中对象的信息?

我还需要知道这些物体的长度和宽度。这些对象不一定具有任何特定的几何形状!

谢谢

4

1 回答 1

0

由于没有人在这里努力回答我的问题,我在其他地方找到了它。现在我把它复制到这里,以防万一像我这样的新手可能需要知道这一点。

为了知道图像中对象的长度和宽度:

labeledImage = bwlabel(my_image, 8);
regioninfo = regionprops(labeledImage , 'MajorAxisLength', 'MinorAxisLength');
lengths = [regioninfo.MajorAxisLength];   %array
widths = [regioninfo.MinorAxisLength];    %array
于 2013-09-18T18:49:22.797 回答