Opencv HoughCircles 在二进制图像上表现不佳?
Opencv HoughCircles perfomrs poorly on binary images?
我试图在图像中定位一些彩球,为了降低误报的风险,我首先根据当前正在搜索的球的颜色将图像缩减为二值图像为了。 OpenCV 的 HoughCircles 无法在二值图像中找到任何圆圈,
同时在转换为灰度的原始图像上表现相当不错。 HoughCircles 是否根本不适用于二进制图像?我没能找到任何这样建议的文档。
原图如下:
生成的圆圈:
未找到圆圈的绿色蒙版:
输入图像应为 houghcircle:8-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。
结果:
我试图在图像中定位一些彩球,为了降低误报的风险,我首先根据当前正在搜索的球的颜色将图像缩减为二值图像为了。 OpenCV 的 HoughCircles 无法在二值图像中找到任何圆圈, 同时在转换为灰度的原始图像上表现相当不错。 HoughCircles 是否根本不适用于二进制图像?我没能找到任何这样建议的文档。
原图如下:
生成的圆圈:
未找到圆圈的绿色蒙版:
输入图像应为 houghcircle:8-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。
结果: