【问题标题】:how to detect center of a blurry circle with opencv如何用opencv检测模糊圆的中心
【发布时间】:2012-07-19 14:44:56
【问题描述】:

我得到了以下图片:

图片上有曲线。 我想找到包含曲线的圆心。

我尝试了 opencv 和霍夫圆变换,但没有结果。

【问题讨论】:

  • DSP 可能是一个更好的问题
  • 看起来中心实际上在图像之外,对吗?
  • 是的,中心在外面,但是当我使用霍夫圆变换时,我会使用更大的图片,中间是这张图片。

标签: c++ image-processing opencv


【解决方案1】:

自然候选者是cvHoughCircles。每条曲线的每个部分都为标识中心点的X/Y/R 三元组添加“投票”。现在,你只有部分圈子,所以票数有限,准确率降低了,但你可能怀疑太多了。

【讨论】:

    【解决方案2】:

    这是我首先要尝试的:

    请注意,如果您从圆的真实中心绘制光线,则沿它们的图像强度的局部最大值出现在与光线方向无关的间隔处。这些间隔是连续圆的半径长度之间的差异。

    因此,固定一个数字或射线方向,例如在 [0, pi] 中等距分布的 16 个,并定义一个成本函数,该成本函数参数化在中心的 (xc, yc) 坐标和圆的 ri 半径上,带有成本等于,例如,沿半径的最大值位置的方差 在不同的半径之间。

    【讨论】:

      【解决方案3】:
      • 图像阈值
      • 腐蚀它,直到几乎没有或没有噪音(小斑点)
      • 向后扩张
      • 找到大斑点。如果仍有一些小斑点,请选择最大区域。
      • 使用 cv::moments 找到它的质心

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-14
        • 1970-01-01
        • 1970-01-01
        • 2022-06-15
        • 2018-04-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多