OpenCV:如何找到特定轮廓的面积
OpenCV: How to find the area of a specific contour
我正在尝试使用轮廓区域过滤从二值图像中去除噪声。我有以下图片:
并且我使用 OpenCV findContours() 函数找到了轮廓。找到的轮廓在下图中以绿色勾勒出来。
有什么方法可以找到特定等高线的面积,还是我只需要估计面积?例如。是否可以求出红色圈出的等高线的面积?
如有任何见解,我们将不胜感激。
cv::findContours()returns每个轮廓对应的图像坐标数组。
为了找到每个轮廓的面积,您可以遍历检测到的轮廓的数量,并对每个图像坐标数组使用函数 cv::contourArea()。
为了找到红色圆圈中的轮廓区域,如果所选轮廓的中点落在圆圈内,则可以在循环内部进行检查,并仅找到该轮廓的区域。
可能还有用的是 cv::minEnclosingCircle(),您可以在其中计算适合轮廓点的最小圆的面积。然后,您可以使用该半径的中心并将其与您想要的图像中的位置进行比较。
希望对您有所帮助。
我正在尝试使用轮廓区域过滤从二值图像中去除噪声。我有以下图片:
并且我使用 OpenCV findContours() 函数找到了轮廓。找到的轮廓在下图中以绿色勾勒出来。
有什么方法可以找到特定等高线的面积,还是我只需要估计面积?例如。是否可以求出红色圈出的等高线的面积?
如有任何见解,我们将不胜感激。
cv::findContours()returns每个轮廓对应的图像坐标数组。
为了找到每个轮廓的面积,您可以遍历检测到的轮廓的数量,并对每个图像坐标数组使用函数 cv::contourArea()。
为了找到红色圆圈中的轮廓区域,如果所选轮廓的中点落在圆圈内,则可以在循环内部进行检查,并仅找到该轮廓的区域。
可能还有用的是 cv::minEnclosingCircle(),您可以在其中计算适合轮廓点的最小圆的面积。然后,您可以使用该半径的中心并将其与您想要的图像中的位置进行比较。
希望对您有所帮助。