0

我正在尝试从头顶网络摄像头跟踪机器人的位置。但是,由于我对机器人或环境没有太多访问权限,所以我一直在处理来自网络摄像头的快照。
机器人有 5 个明亮的 LED 灯,它们的位置与机器人和环境的颜色足够不同,以便轻松隔离。
我已经能够使用 EmguCV 做到这一点,从而产生如下图所示的二进制图像。我现在的问题是,如何获得五个斑点的位置并使用这些位置来确定机器人的位置和方向?

我一直在尝试这个Emgu.CV.VideoSurveillance.BlobTrackerAuto类,但它顽固地拒绝检测上图中的斑点。作为一个新手,当涉及到任何这些时,我不确定我可能做错了什么。
那么在上图中获得斑点位置的最佳方法是什么?

4

3 回答 3

2

我不能告诉你如何使用 emgucv 特别是,你需要将调用从 opencv 转换为 emgucv。您将使用cv::findContours来获取 blob,并使用cv::moments来获取 blob 的位置(获取 blob 中点的公式在 的文档中cv::moments)。然后你会使用cv::estimateRigidTransform来获取机器人的位置和方向。

于 2011-02-24T11:18:11.307 回答
0

我写了一个 python 模块来做这件事。

http://letsmakerobots.com/node/38883#comments

于 2013-12-31T04:29:48.960 回答
0

我使用 cvBlob 库来处理 blob。昨天我用它来检测小斑点并且工作正常。

于 2011-02-24T16:56:53.420 回答