opencv - OpenCV:如何查找特定轮廓的区域

标签 opencv computer-vision contour

我正在尝试使用轮廓区域过滤从二进制图像中消除噪声。我有以下图像:
enter image description here
而且我已经使用OpenCV findContours()函数找到了轮廓。下图中,找到的轮廓以绿色勾勒出轮廓。
enter image description here
有什么方法可以找到特定轮廓的面积,还是只需要估算面积?例如。是否可以找到红色圆圈的轮廓区域?
enter image description here
任何见解均表示赞赏。

最佳答案

cv::findContours()返回与每个轮廓相对应的图像坐标数组的数组。

为了找到每个轮廓的区域,您可以遍历检测到的轮廓的数量,并在每个图像坐标阵列上使用cv::contourArea()函数。

为了找到红色圆圈中的轮廓区域,您可以在循环内部进行检查,如果所选轮廓的中点落入圆圈内,并仅找到该轮廓的区域。

查找cv::minEnclosingCircle()也可能有用,您可以在其中计算适合轮廓点的最小圆的面积。然后,您可以使用该半径的中心,并将其与您所需图像中的位置进行比较。

我希望这有帮助。

关于opencv - OpenCV:如何查找特定轮廓的区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57264916/

相关文章:

python - 在python opencv中查找图像的所有X和Y坐标

python 3.6.1 opencv 3.3.1 cv2.imshow() 不显示图像

opencv - 车牌图像匹配

python - 如何从 Pandas Dataframe 创建事件图(如 Github 贡献图)

opencv - 训练数据簇的 BOW 预测

delphi - 如何定位图像中的对齐标记

matlab - 使用matlab提取人脸特征

visual-studio - Visual Studio 2012 上 OpenCV 2.4.2 中的 MSER 示例

opencv - OpenCV中(CountNonZero)和(Moment M00)和(ContourArea)有什么区别?

python - 在 python 中使用 OpenCV 分割图像