【问题标题】:Area of connected region连通区域面积
【发布时间】:2016-05-20 01:28:02
【问题描述】:

我有一个二进制图像,我想手动测量连接的白色区域的面积,而不使用 MATLAB 函数。我已经标记了这些地区

I=imread('http://i.stack.imgur.com/rBaua.jpg')
[Label,Total]=bwlabel(I,8);

标签是 变量,所有连接的白色区域分别标记,从 1:Total 开始。这是图片:

.

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:

    如果您不想使用任何内置函数,您可以轻松地遍历标签并计算给定标签的像素数。

    areas = arrayfun(@(x)sum(Label(:) == x), 1:max(Label(:)));
    

    或者,您可以使用 accumarrayhistcounts 之类的名称为您计算它们。

    areas = accumarray(Label(:)+1, Label(:), [], @numel);
    areas = histcounts(Label(:), 1:max(Label(:)));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 2016-02-24
      • 2014-07-19
      相关资源
      最近更新 更多