【发布时间】:2016-12-17 06:55:03
【问题描述】:
我正在使用
cv2.HoughCircles
python的功能。
我想在这样的图像中找到圆圈:
在这张图片中有一个大圆圈和许多小圆圈。我只想要最大的。
图像尺寸为 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]]]
所以,我认为所有这些圈子都是可能的,但可能其中一个结果比其他结果最好。我怎样才能找到它?
【问题讨论】:
-
来自文档:“将首先返回对应于较大累加器值的圆圈。”。所以最好的(在霍夫“意义上”)是第一个
-
如果您想对检测到的圆进行后处理,您可以使用倒角匹配或类似方法来查找从圆到边缘的最大或平均距离。