我正在尝试使用轮廓区域过滤从二进制图像中消除噪声。我有以下图像:
而且我已经使用OpenCV findContours()函数找到了轮廓。下图中,找到的轮廓以绿色勾勒出轮廓。
有什么方法可以找到特定轮廓的面积,还是只需要估算面积?例如。是否可以找到红色圆圈的轮廓区域?
任何见解均表示赞赏。
最佳答案
cv::findContours()返回与每个轮廓相对应的图像坐标数组的数组。
为了找到每个轮廓的区域,您可以遍历检测到的轮廓的数量,并在每个图像坐标阵列上使用cv::contourArea()函数。
为了找到红色圆圈中的轮廓区域,您可以在循环内部进行检查,如果所选轮廓的中点落入圆圈内,并仅找到该轮廓的区域。
查找cv::minEnclosingCircle()也可能有用,您可以在其中计算适合轮廓点的最小圆的面积。然后,您可以使用该半径的中心,并将其与您所需图像中的位置进行比较。
我希望这有帮助。
关于opencv - OpenCV:如何查找特定轮廓的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57264916/