获取有关图像中对象的信息

时间:2013-09-13 04:15:11

标签: image-processing matlab

我有一个包含几个分隔区域的二进制图像。我想在这些区域占据的面积(像素数)上设置一个阈值,其方式为:如果像素的像素少于阈值,则省略该区域。我已经尝试过这些代码(使用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 转换回我的图像形状然后显示出来!这有什么窍门吗?

获取有关图像中对象的信息是否比我在此处使用的更简单,更直接?

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

由于

1 个答案:

答案 0 :(得分:0)

由于没有人在这里努力回答我的问题,我发现它在其他地方。现在我正在为此而努力,以防万一像我这样的新手可能需要知道这一点。

为了知道图像中物体的长度和宽度:

labeledImage = bwlabel(my_image, 8);
regioninfo = regionprops(labeledImage , 'MajorAxisLength', 'MinorAxisLength');
lengths = [regioninfo.MajorAxisLength];   %array
widths = [regioninfo.MinorAxisLength];    %array