Opencv HoughCircles 在二进制图像上表现不佳?

Opencv HoughCircles perfomrs poorly on binary images?

我试图在图像中定位一些彩球,为了降低误报的风险,我首先根据当前正在搜索的球的颜色将图像缩减为二值图像为了。 OpenCV 的 HoughCircles 无法在二值图像中找到任何圆圈, 同时在转换为灰度的原始图像上表现相当不错。 HoughCircles 是否根本不适用于二进制图像?我没能找到任何这样建议的文档。

原图如下:

生成的圆圈:

未找到圆圈的绿色蒙版:

输入图像应为 houghcircle8-bit, single-channel, and grayscale

在你的图片中,houghcircle 也能找到那个圆。您所需要的只是为功能选择正确的参数。我尝试了这些参数并且能够找到它:

    rows = gray.shape[0]
    circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1, rows / 8,
                               param1=30, param2=15,
                               minRadius=0, maxRadius=0)

注:最好在houghcircle之前应用gaussian或medianBlur。

结果: