小编Tor*_*iam的帖子

检测openCV中的圆圈

我在为 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) 
Run Code Online (Sandbox Code Playgroud)

也许我使用了错误的功能?

python geometry opencv shapes detection

6
推荐指数
2
解决办法
6616
查看次数

标签 统计

detection ×1

geometry ×1

opencv ×1

python ×1

shapes ×1