首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于camshiftdemo.c tdemo.c的问题

关于camshiftdemo.c tdemo.c的问题
EN

Stack Overflow用户
提问于 2012-10-22 21:39:37
回答 1查看 464关注 0票数 1

我使用的是OpenCV 2.3.1附带的camshiftdemo.c程序:

https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/c/camshiftdemo.c?rev=1429

我想知道如何使用这个程序来指导机器人跟随选择的对象?我正在尝试运行一个实验,看看它是否有效,但显然我需要对其进行一些调整。

camshiftdemo的工作方式是在你选择的对象周围画一个红色的椭圆(用鼠标点击它)。随着物体的移动,红色椭圆也随之移动。如果物体移动得更远,椭圆的大小会减小,如果它离相机更近,椭圆的大小就会增加。

为了指示一个机器人,我在想,如果红色月食的大小减小,我告诉它向前移动,如果它增加,我告诉它向后移动。如果日食向左移动,机器人将向左移动,如果日食向右移动,机器人将向右移动。

听起来很简单,但是在这段代码中,日食是在哪里绘制的?如果物体在10秒内来回移动怎么办?这是否意味着机器人停留在同一位置(例如,我是否应该在机器人的移动中引入延迟?)?

我的目标是获得camshiftdemo.c代码来指示机器人移动{前进,后退,左转,右转}。

那么,我如何才能让机器人跟随一个物体,无论是使用月食的大小还是其他方式?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-24 08:17:58

看起来你是在寻求一种方法,将检测到的物体植入CamShift跟踪器。

根据你的机器人的处理能力,你可能想要考虑一种更简单的方法。如果你能选择你正在寻找的目标,我会选择像网球这样的东西,因为它们是非常鲜艳和独特的颜色。现在,您的对象具有已知的颜色特征,并且您可以使用轮廓处理相当简单地跟踪它。此外,如果您决定使用颜色跟踪,请考虑切换到HSV或YCbCr等颜色空间。这将允许颜色检测对强度变化较不敏感。Here是我在OpenCV中关于颜色隔离的较早的帖子之一。

您将采取的主要步骤是:

  1. inRange (使用颜色thresholds)
  2. findContours隔离对象(使用此选项查找对象斑点;您可能需要最大的一个,但如果为circular)
  3. moments (查找检测到的对象的质心),也可以使用filter by circularity )

您可以选择将对象质心输入到CamShift跟踪器中,只需使用上述步骤作为采集模式。

希望这对你有帮助..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13017003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档