【问题标题】:How to extract the width of a connected component from regionprops?如何从 regionprops 中提取连接组件的宽度?
【发布时间】:2014-02-14 20:40:27
【问题描述】:

我想使用regionprops 找出连接组件的宽度。宽度不是regionprops 的默认属性之一,但我认为BooundingBox 有这个选项。从我阅读的文档中:

'BoundingBox' - 包含该区域的最小矩形,一个 1×Q *2 向量,其中 Q 是图像维度的数量:ndims(L)、ndims(BW) 或 numel(CC.ImageSize) . BoundingBox 为 [ul_corner width],其中:

ul_corner 的格式为 [x y z ...] 并指定左上角 边界框宽度的角采用 [x_width y_width ...] 形式 并指定边界框沿每个维度的宽度

所以,如果我在控制台中输入 s(1).BoundingBox,我会得到这个

ans =

    7.5000   27.5000  197.0000  132.0000

我是否正确假设第三个元素(在本例中为 197)是连接组件的宽度?前两个是 xy 坐标,最后一个是高度?

如果是,我该如何提取它?

我试过这段代码,但它似乎不起作用。

BB = [stats.BoundingBox];
for m = 3:3:length(BB) % start from third element, skip next three and so on
  width = BB(m);
end

它似乎只是对 BB 的所有元素求和并将结果存储在 width 中。

我从 BoundingBox 中提取宽度是否正确?我的索引方法有什么问题?为什么不给我width 向量?

谢谢

【问题讨论】:

  • 3:4:length(BB) - 每个条目有 4 个元素,因此您希望每个第 4 个元素 3 开始。此外,您没有索引到 width,所以您只需覆盖它每次都是一个标量。我个人会选择BB=vertcat(stats.BoundingBox); width=BB(:,3);

标签: matlab image-processing vector image-segmentation


【解决方案1】:

BoundingBox[ul_corner_x ul_corner_y x_width y_width],其中前 2 个元素指定边界框的左上角,最后 2 个元素指定边界框沿每个维度的宽度。请注意,它不是连接组件的宽度,而是边界框的宽度。每个边界框只包含所有具有相同指定标签的连接组件。实际上,定义连接组件(多边形)的宽度是没有意义的。

A = randi([0 1], 10, 10);
bw=bwlabel(A);
cc=regionprops(bw,'BoundingBox');

你有,

>> cc(1)

ans = 

    BoundingBox: [0.5000 0.5000 10 10]

>> cc(2)

ans = 

    BoundingBox: [3.5000 0.5000 1 1]

>> cc(3)

ans = 

    BoundingBox: [8.5000 8.5000 1 2]

bw =

     0     0     0     2     0     0     1     0     0     1
     0     1     0     0     0     0     0     1     1     0
     0     0     1     0     0     1     0     0     1     0
     0     1     0     1     1     1     1     1     0     0
     0     0     1     1     1     0     1     1     1     0
     0     1     1     0     0     1     0     1     0     0
     1     1     1     1     1     1     0     1     0     0
     0     0     0     1     0     1     0     0     0     0
     1     1     1     1     1     0     0     0     3     0
     1     0     1     1     1     1     0     0     3     0

【讨论】:

    猜你喜欢
    • 2016-01-09
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    相关资源
    最近更新 更多