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

时间:2019-07-16 21:43:06

标签: c++ opencv3.0

如何在灰色区域中增加明亮的像素?

输入: image

输出:image

2 个答案:

答案 0 :(得分:2)

我的回答比平常的努力没有帮助,但是很难用这么少的努力来激发问题的热情...

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

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

  • a)的颜色为white
  • b)的父级颜色为grey

here对层次结构的工作方式有很好的解释。

答案 1 :(得分:2)

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