Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从cv2.HoughCircles中找到最佳圆_Python_Opencv - Fatal编程技术网

Python 如何从cv2.HoughCircles中找到最佳圆

Python 如何从cv2.HoughCircles中找到最佳圆,python,opencv,Python,Opencv,我正在使用 cv2.HoughCircles python的函数 我想在这样的图像中找到圆: [[[ 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

我正在使用

cv2.HoughCircles
python的函数

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

  [[[ 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]]]

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

图像的尺寸为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]]]

所以,我认为所有这些循环都是可能的,但可能其中一个结果比其他的好。如何找到它?

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

从文档中:“将首先返回与较大累加器值相对应的圆。”。因此,最好的一个(在Hough“意义上”)是第一个如果你想对检测到的圆进行后处理,你可以使用倒角匹配或类似的方法来找到从圆到边缘的最大或平均距离。