【问题标题】:MATLAB count true values in an array but only one per groupMATLAB 计算数组中的真值,但每组只有一个
【发布时间】:2016-06-20 15:57:45
【问题描述】:

给定一个逻辑数组,A:

img = imread('coins.png'); %built-in coins.png demo image
A = img > 100;

我想要一个函数来计算数组中有多少真实元素,但忽略那些与已经计算过的元素相连的元素。对于上面的示例图像,我希望它返回 10。我最初的想法是使用 erode / dilate 之类的东西,或者 bwmorph 函数之一,但我一直无法弄清楚。

如果阈值从 100 更改为 140,我希望函数返回 6 或 9,具体取决于对角线是否被认为是连接的。

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:

    bwlabel怎么样

    labelled = bwlabel(A);
    max(A(:));
    

    【讨论】:

      【解决方案2】:

      这里的例子很有帮助:

      http://au.mathworks.com/help/images/image-enhancement-and-analysis.html

      cc = bwconncomp(A,4);
      

      生成一个包含对象数量及其位置的对象。阈值为 100 时,cc.NumObjects 为 10。这取决于连通性,但对于第二种情况(阈值为 140),连通性为 8 时,解为 19。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-07
        • 2015-07-22
        • 2017-10-27
        • 2019-01-17
        • 1970-01-01
        • 2014-05-28
        • 2017-06-25
        • 1970-01-01
        相关资源
        最近更新 更多