【问题标题】:circle detection using python, numpy?使用python,numpy进行圆形检测?
【发布时间】:2013-02-20 15:30:11
【问题描述】:
  1. 我想用python实现霍夫变换算法,numpyscipy

  2. 我不想使用opencv

  3. 我正在尝试检测图像中没有已知半径的圆心或圆。

我该如何进行?

【问题讨论】:

  • 另外,来自@H_shah 的 Wikipedia 上的 Hough-transform 示例假设一个特定半径,并且不检测通用半径的圆,违反了第 3 项。这个想法很简单,画一个半径为 r 的圆在每个黑色像素的空画布上,原始图像中任何同半径圆的中心都会在画布上产生最大值。这只检测半径为 r 的圆。
  • 我曾经能够使用连通分量分析找到随机大小的圆的中心,我在圆的边界上构建了二等分,并查看了其中许多二等分的区域相交。这个想法在幻灯片 20-25 中描述:herbertkruitbosch.com/stuff/annual-rings-presentation.pdf

标签: python numpy scipy hough-transform


【解决方案1】:

实现霍夫变换的过程非常简单。我建议你在 youtube 上看一些关于它的视频,甚至还有带有代码/伪代码的视频。

话虽如此,我也遇到了同样的情况,希望实现 HT 来检测圆圈。但是,我决定使用的方法与传统的 HT 有点不同。我没有循环遍历所有像素以生成在至少一个圆点上传递的圆,而是使用圆点作为中心,将半径从 min_radius 增加到 max_radius 并以与经典 HT 相同的形式累积它。

这样,您最终将获得一个带有(x、y 和半径)的 3D 数组。中心和半径将是具有最大累积值的 (x, y, radius)。

Simplified Hough Transform

【讨论】:

    【解决方案2】:

    我google了一下,发现如下:

    http://nabinsharma.wordpress.com/2012/12/26/linear-hough-transform-using-python/

    也许这就是您要搜索的内容。

    抱歉,我认为对于圈子,您应该尝试以下操作:

    http://nullege.com/codes/search/houghcircles

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-02
      • 2019-02-25
      • 1970-01-01
      • 2014-03-03
      • 2017-07-01
      • 2012-06-14
      • 2014-03-28
      • 1970-01-01
      相关资源
      最近更新 更多