【问题标题】:Gain information about objects in an image获取图像中对象的信息
【发布时间】:2013-09-13 04:15:10
【问题描述】:

我有一个包含几个分离区域的二进制图像。我想在这些区域占据的区域(像素数)上设置一个阈值,方式如下:如果一个区域的像素少于阈值,则该区域将被省略。我已经尝试过这些代码(使用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 转换回我的图像形状然后显示它!有什么技巧可以做到这一点吗?

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

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

谢谢

【问题讨论】:

  • 我发现我可以使用bwareaopen代替我上面写的所有代码!!!但我仍然坚持寻找一种方法来计算单个物体的长度和宽度!!!有什么想法吗?!

标签: image-processing matlab


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-04
    • 2021-06-22
    • 1970-01-01
    • 2013-01-18
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多