opencv - OpenCV Hough检测找到内圈

标签 opencv

我正在尝试使用霍夫圆检测方法来找到所有的圆,如图所示(如图1和2所示)。最初,我使用canny和findContour方法(如图3所示)。我仍然不确定哪种方法更合适。canny和findContour方法的问题是它没有找到所有的圆,也没有得到很多噪音。但是,当使用霍夫圆检测时,圆有时会捕获外围而不是内部,如图2所示。

canny + findcontour方法可以很好地找到圆轮廓,但是会产生很多噪点,而Hough圆效果很好,但是圆有时会与外圆融合。

Hough circle

Hough circle-zoomed in

canny + findcontour method

最佳答案

我认为如果对图像进行预处理可以得到更好的结果。首先应用Otsu阈值,如果效果不佳,请使用手动值作为阈值。之后,使用cv.erode()函数获得清晰的边界。然后尝试应用霍夫圆变换。
如果性能不是问题,那么另一有趣的事情是查看整体嵌套边缘检测,然后应用霍夫圆变换。

还可以看看以下内容:

https://www.learnopencv.com/filling-holes-in-an-image-using-opencv-python-c/
https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_watershed/py_watershed.html

关于opencv - OpenCV Hough检测找到内圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61830129/

相关文章:

c++ - OpenCV:计算相机和像素之间的角度

c++ - 是否可以在 QThread 内部使用 opencv 函数?

c++ - OpenCV 从命名管道 (fifo) 到 ffplay

python - Cv2所有面部特征检测

python - 检测噪声图像中几乎恒定颜色的垂直矩形

python - 无法在 mac 中为 python 安装 opencv .. 下面是错误。否则建议安装 opencv 的更好方法

opencv - 将CvSeq转换为CvMat

c++ - 在 Debug模式下无法在 Qt Creator 中使用 imwrite()

c++ - OpenCV HSV 怪异转换

python - 如何使用 OpenCV 同时从​​连接到 Raspberry Pi 3 的两个 USB 摄像头捕获和保存图像?