如何准确地检测圆圈

时间:2012-10-25 13:48:59

标签: opencv image-processing geometry hough-transform

有没有办法准确检测opencv中的圈子?我正在使用霍夫变换,这给了我很好的结果,但大多数时候,物体的阴影和周围,光线等给出了不好的结果,所以我正在寻找除了霍夫圈以外的选项,准确的检测对我的项目非常重要。

到目前为止,我的基本方法是在实时拍摄的图像中找到一些球体。我正在使用houghcircle找到球体,然后根据我得到的半径计算基础。

如果背景很明显,并且球体没有检测到任何问题,但是如果我在我的房间中拍摄该图像,其中背景将有其他物体,则通常很难检测到。所以我正在寻找其他方法。

2 个答案:

答案 0 :(得分:3)

我有类似的需要找到圈子,而且只做一点关于精确检测的工作。尝试使用。

  1. 轮廓检测,一旦轮廓绘制轮廓,
  2. 使用minEnclosingCircle在检测到的轮廓上画一个圆圈。
  3. 从轮廓中可以得到半径和x,y点
  4. 编辑:也可以使用ContourArea()过滤周围和较小对象中的对象。 检查较小的轮廓并消除

    这应该比霍夫圆检测更好。祝你好运

答案 1 :(得分:1)

正如Junxx所说,照明不变性将与我所遇到的大多数问题一起使用。像阴影,光线等。这可能对寻找这个答案的人有用。