我试图检测数组中的所有圆圈.为了达到这个目的,我正在使用Hough Circle Transform.我能够在阵列中检测到100%的圆圈,但是有很多误报,当我摆脱误报时,我无法检测到100%的圆圈.当我在下面给出的代码中将dp参数更改为1时,所有的误报都消失了,当我将其保持为3时,有很多误报,100%检测.我希望100%检测到0或非常少的误报.这样做的最佳方法是什么.
import cv2
import cv2.cv as cv
import numpy as np
img = cv2.imread('test1.tiff',0)
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
circles = cv2.HoughCircles(img, cv.CV_HOUGH_GRADIENT,3,15,
param1=70 ,param2=17,minRadius=1,maxRadius=10)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# draw the outer circle
cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)
cv2.imshow('detected circles',cimg)
cv2.imwrite("output15.jpg", cimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
Run Code Online (Sandbox Code Playgroud)
这里有一个示例图片:

