我试图从图像中去除噪点。图像中有一些黑色像素组。我使用了cv::findContours和cv::boundingRect函数。并用白色填充小矩形(小矩形是图像中的噪声)。但这种方法也会找到我的白色轮廓(例如黑色圆形中间)。如何找到黑色像素的轮廓?是否有简单的解决方案?
我试图从图像中去除噪点。图像中有一些黑色像素组。我使用了cv::findContours和cv::boundingRect函数。并用白色填充小矩形(小矩形是图像中的噪声)。但这种方法也会找到我的白色轮廓(例如黑色圆形中间)。如何找到黑色像素的轮廓?是否有简单的解决方案?
黑色物体的轮廓方向与白色物体的轮廓方向相反(顺时针 vs 逆时针)。您可以通过调用计算有符号面积的函数来检查它:
if (contourArea(someContour,true) > 0)
cout << "black" << endl;
else
cout << "white" << endl;