OpenCV Hough检测找到内圈

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

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

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

Hough circle

Hough circle-zoomed in

canny + findcontour method

opencv
1个回答
0
投票

我认为,如果对图像进行预处理,可以获得更好的结果。首先应用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

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