这是一个简单的图像,其具有相同大小和硬边缘的斑点,作为灰度图像。为什么下面的代码找不到这些圈子?
ret,thresh1 = cv2.threshold(img,180,250,cv2.THRESH_BINARY)
thresh1 = cv2.blur(thresh1,(15,15))
circles = cv2.HoughCircles(thresh1,cv2.HOUGH_GRADIENT, 2, np.shape(thresh1)[0]/8, param1=200, param2=10)
if circles is not None:
plt.imshow(np.flipud(thresh1), origin='lower', cmap='bone')
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
currentAxis = plt.gca()
currentAxis.add_patch(Circle((i[0] , i[1]), i[2],fill=False,color='red'))
currentAxis.add_patch(Circle((i[0] , i[1]), 8,fill=True,color='green'))
plt.show()
我得到的输出是:
我试过调整param1和param2。要么我最终得到错误的检测(超过这个)或者什么都没有!最小距离参数设置为图像宽度的1/8,仅作为任意值。
任何帮助都会非常有帮助。