使用Python和Numpy进行圆形检测?

-1 投票
2 回答
3979 浏览
提问于 2025-04-17 16:30
  1. 我想用Python、numpyscipy来实现霍夫变换算法。

  2. 我不想使用opencv这个库。

  3. 我正在尝试在图像中检测圆心或者圆,但我不知道圆的半径。

我该怎么做呢?

2 个回答

1

我在网上查了一下,找到了以下内容:

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

也许这就是你在找的东西。

抱歉,我觉得如果你想处理圆形的话,可以试试下面这个:

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

2

实现霍夫变换的过程其实很简单。我建议你去YouTube上找一些相关的视频,那里有很多关于这个的教程,甚至还有代码或伪代码的演示。

说到这里,我也曾经遇到过类似的情况,想用霍夫变换来检测圆。不过,我选择的方法和传统的霍夫变换有点不同。我没有遍历所有像素来生成经过至少一个圆上点的圆,而是把圆上的点当作圆心,从最小半径逐渐增加到最大半径,并以经典霍夫变换的方式来累积结果。

这样,你最终会得到一个三维数组,里面包含了(x,y和使用的半径)。中心和半径将是那个累积值最大的(x,y,半径)。

简化的霍夫变换

撰写回答