【问题标题】:How to find contours only in black colour?如何仅找到黑色的轮廓?
【发布时间】:2015-04-18 19:46:37
【问题描述】:

我尝试从图像中去除噪点。我在图像中有一些黑色像素组。我使用 cv::findContours 和 cv::boundingRect。我用白色填充小矩形(小矩形是图像中的噪声)。 但是这种方法也能找到我的白色轮廓(例如黑色圆圈的中间)。如何找到黑色像素的计数? 有什么简单的解决办法吗?

【问题讨论】:

标签: c++ opencv image-processing ocr noise-reduction


【解决方案1】:

黑色物体的轮廓与白色物体的轮廓方向相反(顺时针与逆时针)。您可以通过调用计算签名面积的函数来检查它:

if (contourArea(someContour,true) > 0)
    cout << "black" << endl;
else
    cout << "white" << endl;

【讨论】:

  • 谢谢,但我不是发明这种方法的人。几乎每个几何库的行为方式都相同,即对对象和对象中的孔使用相反的方向,并使用符号区域来区分它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多