【问题标题】:Reasonable search range for HoughCircles param2?HoughCircles param2 的合理搜索范围?
【发布时间】:2019-06-05 17:47:44
【问题描述】:

我正在编写一个脚本来自动检测一组照片上的一些圆圈。我可能已经阅读了有关 HoughCircles on Stack 的所有问题,推荐的方法通常似乎是蛮力半径间隔和累加器阈值(即 param2)。半径循环的范围一般可以从图像的其他几何属性中估计出来,但是有什么好的方法可以自动限制 param2 的搜索范围呢?

如果有人对优化这种蛮力方法有任何其他提示,我也将不胜感激。

【问题讨论】:

    标签: opencv hough-transform


    【解决方案1】:

    这与参数 2 无关。它是使事情正确的累积效应。

    让我们举个例子。随着输入

    我们可以根据其他函数如canny或其他分割输出中的不同参数得到不同的特征图

    此功能仅适用于线路。无论您为 param2 选择什么,左边的圆圈都不会出现

    这里是另一个设置,在这里,你可以在 param2 = 110 处检测到圆圈

    您会看到 param2 没有完美或优化的搜索范围。但是你解决问题的方式很重要。

    【讨论】:

    • 我理解多因素之间存在关系,所以分割方式会影响param2。在我的情况下,我使用 Otsu 的方法在传递给 HoughCircles 之前自动设置 Canny 的阈值。因此,我使用与 param1 相同的阈值。我想知道的是是否可以将 Canny 阈值或圆周搜索范围与 param2 相关联,以便智能地限制搜索范围。在您的示例中,您是如何得出 110 的值的?
    • 如果你的分割可以像只有圆圈一样给出完美的结果。那么对于参数 2,它可以是大于 10 的任何值。兄弟,您无法对所有情况进行总结。然后是前中值或高斯模糊。您还想要模糊半径的整体参数 2 + 4 或 5 分割参数吗?你不可能得到直接的相关性。 110是根据我的经验。你会及时学会的。
    • 这样想,如果所有输入和所有输出都已经存在关系的话。为什么我们首先需要你编写这段代码?我可以编写代码来完成所有情况,而无需人工干预,对吧?
    • 所以假设我的分割是好的,从 param2=10 迭代直到 HoughCircles 返回None/null,然后从中选择最好的圆圈是一个好的策略吗?或者如果我的目标是完全自主,就放弃 Hough 并使用深度学习?
    • 如果您想要一个黑盒自动解决方案。深度学习应该是你的首选。如果您热衷于获得可解释的数据,hough circle 是一种方式。参数 2 是您希望找到一个圆的方式(检测阶段圆心的累加器阈值)。值越小,需要选为圆的点越小。值越大,分类为圆形时需要的点越多
    猜你喜欢
    • 1970-01-01
    • 2015-11-15
    • 1970-01-01
    • 2020-10-11
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    相关资源
    最近更新 更多