【问题标题】:Access labeled region from cv::connectedComponents从 cv::connectedComponents 访问标记区域
【发布时间】:2015-06-20 08:18:21
【问题描述】:

是否有访问 cv::connectedComponents 标记的特定区域的好方法?例如,我在二值图像中识别了三个区域白色区域,它们分别标记为 1、2、3。如何仅在标记为 2 的区域上进行计算(例如,一个方向的方差)?

【问题讨论】:

    标签: c++ opencv image-processing image-recognition


    【解决方案1】:

    您应该使用 cv::connectedComponentsWithStats。然后您可以遍历每个标签并使用 CC_STAT_LEFT、CC_STAT_TOP、CC_STAT_WIDTH 和 CC_STAT_HEIGHT 来获取每个区域的边界框。更多信息在这里:https://github.com/Itseez/opencv/blob/master/modules/imgproc/src/connectedcomponents.cpp

    摘自链接:

        for(int l = 0; l < (int) nlabels; ++l){
            int *row = (int *) &statsv.at<int>(l, 0);
            row[CC_STAT_LEFT] = INT_MAX;
            row[CC_STAT_TOP] = INT_MAX;
            row[CC_STAT_WIDTH] = INT_MIN;
            row[CC_STAT_HEIGHT] = INT_MIN;
            row[CC_STAT_AREA] = 0;
        }
    

    【讨论】:

      猜你喜欢
      • 2019-02-15
      • 2016-02-11
      • 1970-01-01
      • 2018-01-13
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      相关资源
      最近更新 更多