霍夫圆检测:在调用霍夫圆算法之前模糊图像?

Hough circle detection: Blurring the image before calling hough circle algorithm?

http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_imgproc/py_houghcircles/py_houghcircles.html

这里的例子不知道为什么在霍夫圆算法之前先调用中值滤波器。这是为了提供更好的检测吗?

此外,在调用霍夫圆算法时,是否还有其他可能有用的一般技巧?特别是,如果圆形物体与其背景具有相同的亮度,因此在灰度上看起来是均匀的,我可以在这里做些什么吗?

此外,如果我不能得到完美的检测,我宁愿检测到的圆圈较少,但检测到的圆圈是正确的。

谢谢

模糊有助于通过减少噪声来避免错误的圆检测,因为 openCV 使用霍夫圆检测算法的梯度版本,概述如下:http://homepages.inf.ed.ac.uk/rbf/BOOKS/BANDB/LIB/bandb4_3.pdf

模糊的大小将与内部 Canny 边缘检测器的上限阈值相互作用,即 param_1。你会想要尝试一下的。

要解决亮度问题,请尝试仅使用隔离的 R、G 和 B 通道进行检测。要获得更完整的结果,您可以将色调移动 60,然后再次使用隔离通​​道。

是的,它是为了减少图像中的噪声,目的是提高边缘检测。边缘检测算法对噪声很敏感。

此处描述: https://en.wikipedia.org/wiki/Median_filter

但是这张图片更好地说明了模糊如何改进(甚至是你的大脑)边缘检测: https://upload.wikimedia.org/wikipedia/commons/6/62/Cappadocia_Gaussian_Blur.svg

这张图片来自一篇关于高斯模糊的文章,高斯模糊是另一种减少信号(如图像)噪声的平滑技术。然而,中值滤波器比高斯模糊更好地保留边缘,因此它在图像处理中的使用。 (在 Wiki 的中值滤波器文章 "Edge preservation properties" 下有描述)