如何在灰色区域增长明亮像素?OpenCV C++



如何在灰色区域增长明亮像素?

输入:图像

输出:图像

我的回答比我平时的努力要少一些帮助,但很难用这么少的努力来激发对问题的热情......

您可以使用OpenCV findContours()来解决您的问题 - 此处的文档。您需要确保使用检索模式CV_RETR_TREE

然后,您需要编写一个循环,遍历找到的所有轮廓。在循环中,您需要寻找一个轮廓:

  • a( 颜色为 white 并且,
  • b( 其父母有颜色grey

这里有一个关于层次结构如何工作的体面解释。

Mat im = imread("ask.png", 0);
Mat mat;
mat = im==255;
    findContours( mat, contours, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE);
    for( size_t i = 0; i< contours.size(); i++ )
      {
        floodFill(mat, contours[i].at(0), 255, 0, Scalar(128), Scalar(255), FLOODFILL_FIXED_RANGE);
      }
    mat = mat==255;                // output image

最新更新