2

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

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

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

4

2 回答 2

3

我也有类似的需要准确地找到圆圈,但在准确检测方面只做很少的工作。尝试使用。

  1. 轮廓检测,一旦你的轮廓绘制轮廓。
  2. 使用 minEnclosureCircle 在检测到的轮廓上画一个圆。
  3. 从轮廓你可以得到半径和 x,y 点

编辑:也可以使用 ContourArea() 过滤周围的对象和较小的对象。检查较小的轮廓并消除

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

于 2012-11-14T13:44:20.110 回答
1

正如 Junxx 提到的照明不变性将解决我遇到的大多数问题。像阴影、光线等。这可能对寻找这个答案的人有用。

于 2012-10-31T10:58:34.133 回答