如何从cv2.HoughCircles找到最佳圆圈

时间:2016-12-16 17:28:40

标签: python opencv

我正在使用

cv2.HoughCircles

python的功能。

我想在这样的图像中找到圆圈:

enter image description here

在这张图片中有一个大圆圈和许多小圆圈。我只想要最大的。

图片尺寸为280x300像素,但如果我设置为函数的参数minRadius = 90且maxRadius = 150

circles = cv2.HoughCircles(edges, cv2.cv.CV_HOUGH_GRADIENT, 1, 30,
>               param1=20,
>               param2=10,
>               minRadius=80,
>               maxRadius=150)

print (circles)

我找到了这样的输出:

  [[[ 149.5         125.5         141.63510132]
  [ 141.5         155.5         112.5544281 ]
  [ 173.5         144.5         103.35617828]
  [ 115.5         134.5          98.32852936]
  [ 173.5         105.5          87.82083893]
  [ 174.5         176.5          85.20856476]
  [ 130.5          99.5          83.69289398]
  [ 105.5         165.5          81.62413788]
  [ 141.5         187.5          80.62567902]
  [  75.5         134.5         104.03124237]]]

所以,我认为所有这些圈子都是可能的,但可能其中一个结果最好。我怎么能找到它?

1 个答案:

答案 0 :(得分:4)

第四个函数的参数是检测到的圆的中心之间的最小距离。要仅查找一个圆圈,您只应将此参数设置得更大。