【发布时间】:2020-03-11 13:24:14
【问题描述】:
我在为 HoughCircles 函数选择正确参数时遇到问题。我尝试从视频中检测圆圈。这个圆圈是我做的,尺寸几乎一样。问题是相机在移动。
当我更改 maxRadius 时,它仍然以某种方式检测到更大的圆圈(见右图)。我也尝试更改 param1、param2 但仍然没有成功。
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)
也许我使用了错误的功能?
【问题讨论】:
-
为什么 param1 和 param2 太高了?试试这些参数:param1=100, param2 = 30, minradius = 1, maxradius = 100
-
minDist=100 在您的图像中有意义吗?尝试根据这些圆圈的实际距离减小 minDist
标签: python opencv geometry detection shapes