cv2.HoughCircles 检测到许多假圆圈,但实际的圆圈

问题描述 投票:0回答:1

我在使用 openCV 时遇到了一些困难,试图检测图像上的圆圈。用笔在白纸上画圆圈

我正在尝试使用

cv2.HoughCircles
,但结果非常不可靠。在灰度图像和二值图像上,该算法都无法找到圆圈。同时发现很多假货

这是例子

Here only fake circles are detected

A lot of fake circles

Original image

我尝试应用二值化并寻找轮廓。效果很好,除了任何噪音都被认为是轮廓并显着减慢了程序速度。

使用

cv2.HoughCircles
我厌倦了使用参数(param1,param2)。在参数 2 较低时,它开始检测,但同时在空白处检测到许多假冒的。参数2稍高一点时,只会检测到假圆圈。

出了什么问题?可能是我的圈子不够圈?

python opencv image-processing computer-vision
1个回答
0
投票

您的代码难以检测这些圆圈的原因是由于累加器阈值

param2
。其作用是调整代码将检测到的圆圈数量。它越低,基于最准确/置信度的检测,检测和输出的圆圈就越多。不知何故,
cv2.HoughCircles
无法非常准确地检测您绘制的圆圈。如果
param2
较低,您还会有更多错误检测,这是可以清楚观察到的。

该解决方案涉及大量预处理,我不会在这里详细介绍。但是这里有一个关于

cv2.HoughCircles
的使用的漂亮主题,其中包含如何最好地使用它的技巧:使用 OpenCV(基于霍夫变换或其他功能)编写鲁棒(颜色和大小不变)圆检测

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.