在使用霍夫圆时,我不太了解如何为霍夫圆定义参数?我什至都不知道它们表示什么参数。我所知道的


image:它是源图像
method:它是检测圆的过程(除了霍夫梯度以外,没有其他方法)
minDist:是最小值。圆的两个中心之间的距离
minRadius:圆的最小半径
maxRadius:这是最大半径


我什至不了解其余的参数。有人可以帮我解释一下吗?

最佳答案

好问题!

这是来自opencv-python教程的HoughCircles()函数的示例。让我们详细看一下

HoughCircles(image, method, dp, minDist[, param1[, param2[, minRadius[, maxRadius]]]]])


图片

这是您要从中检测圆的输入图像。强烈建议对图像进行灰度处理,因为HoughCircles()使用Canny()函数检测图像中的边缘。

方法

这是用于查找圆的数学公式。 HoughCircle中唯一可用的公式是cv2.HOUGH_GRADIENT,因此您别无选择,只能使用它。

dp

查看此答案here。如果您听不懂,请放心。 Hough Transform是宽泛的子对象,如果您想了解此变量的含义,建议您更详细地研究它,但是无论如何,此变量应在0到2之间,并且是double类型,因此请尝试使用0.6或1.3这样的数字。

minDist

这是要检测的圆心之间的最小距离。您的图像中的圆圈有多近?您是否希望该功能检测紧密相连的圆或圆之间的距离?

param1和param2

如前所述,HoughCircles()在内部使用Canny()函数。这些参数指定您要多么积极地检测边缘。


  Canny运算符中使用的阈值器使用一种称为
  “磁滞”。大多数阈值设定者使用单个阈值限制,即
  表示如果边值在此值上下波动,则直线
  将显示为损坏(通常称为``条纹'')。磁滞现象
  通过设置上下边缘值限制来对条纹进行计数。
  考虑线段,如果值高于上限阈值
  限制它立即被接受。如果该值低于低点
  阈值将立即被拒绝。介于两者之间的点
  如果限制连接到显示以下像素的像素,则可接受
  反应强烈。


minRadius和maxRadius

圆的大小由其半径表示。半径越大,圆越大,反之亦然。这些参数指定要检测的圆的大小范围。

最后

当您使用HoughCircles()和其他类似函数时,您将花费大量时间在调整这些参数上,以找到最佳的数字组合以检测图像中的圆。因此,如果您认为参数有误,请不要感到沮丧。

关于python - Hough Circle中的参数表示什么?如何知道要使用哪些值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59105602/

10-11 22:23
查看更多