Python Opencv HoughCircles在二值图像上表现不佳?

Python Opencv HoughCircles在二值图像上表现不佳?,python,opencv,hough-transform,Python,Opencv,Hough Transform,我试图在图像中定位一些彩色球,为了减少误报的风险,我首先根据当前正在搜索的球的颜色将图像缩小为二值图像。OpenCV的HoughCircles无法在二进制图像中找到任何圆, 在转换为灰度的原始图像上表现良好。HoughCircles不能处理二进制图像吗?我还没有找到任何文件表明这一点 下图为原始图像: 由此产生的圆圈: 找不到圆的绿色遮罩: 输入图像应为:8位、单通道和灰度 在您的图像中,Houghcirle也可以找到该圆。您所需要的只是为函数选择正确的参数。我尝试了这些参数,并能够找到它:

我试图在图像中定位一些彩色球,为了减少误报的风险,我首先根据当前正在搜索的球的颜色将图像缩小为二值图像。OpenCV的HoughCircles无法在二进制图像中找到任何圆, 在转换为灰度的原始图像上表现良好。HoughCircles不能处理二进制图像吗?我还没有找到任何文件表明这一点

下图为原始图像:

由此产生的圆圈:

找不到圆的绿色遮罩:

输入图像应为:
8位、单通道和灰度

在您的图像中,Houghcirle也可以找到该圆。您所需要的只是为函数选择正确的参数。我尝试了这些参数,并能够找到它:

    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

结果:


非常感谢,我一定是设法只尝试了没有结果的参数值!