我在选择HoughCircles函数的正确参数方面遇到了问题。 我尝试从视频中检测圆圈。这些圆圈是我制作的,几乎具有相同的尺寸。 问题是相机在移动。
当我更改maxRadius时,它仍然以某种方式检测到更大的圆圈(请参见右图)。 我还尝试更改param1,param2,但仍没有成功。
![左-原始图片,右-模糊和检测出的圆圈](https://istack.dev59.com/rZ7iG.webp)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blurred = cv2.medianBlur(gray, 25)#cv2.bilateralFilter(gray,10,50,50)
minDist = 100
param1 = 500
param2 = 200#smaller value-> more false circles
minRadius = 5
maxRadius = 10
circles = cv2.HoughCircles(blurred, cv2.HOUGH_GRADIENT, 1, minDist, param1, param2, minRadius, maxRadius)
if circles is not None:
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
cv2.circle(blurred,(i[0], i[1]), i[2], (0, 255, 0), 2)
也许我使用的函数不正确?