如何找到移动对象的坐标来绘制矩形

时间:2013-03-09 01:23:29

标签: opencv

有谁知道如何定位移动物体的坐标?我在网上找到了一些关于使用光流追踪物体的例子,但我只在移动物体上得到了一些跟踪点。我可以在每个移动物体周围画一个矩形吗?有没有办法获得每个移动物体的坐标?提前感谢任何帮助。谢谢!

3 个答案:

答案 0 :(得分:1)

将矩形拟合到光流所获得的点上,您可以将拟合矩形的中心视为对整个运动物体的2D轨迹的公平估计。

答案 1 :(得分:1)

你可以使用Moments运算符

首先计算轮廓尺寸.... 并添加此代码块

Moments moment = moments((cv::Mat)contours[index]);
           area = moment.m00;//m00 gives the area
                       x = moment.m10/area;//gives the x coordinate
                    y = moment.m01/area;  //gives y coordiante

其中轮廓是findcontours()的输出,

答案 2 :(得分:0)

很难通过它上面的几个点来判断对象的坐标。你可以使用片刻(here is a tutorial)tu得到一个非常稳定的点来描述你的对象在哪里。

你也可以做一些额外的工作,比如使用跟踪点进行分割以获得被跟踪物体的轮廓,这样可以更容易找到它的质量中心。过度使用它。

还有一个名为CAMSHIFT的跟踪方法,它返回一个绑定被跟踪对象的矩形。

如果您确切地知道跟踪的是什么,并且可以确保跟踪跟踪对象上的某些已知点,并且您能够识别它们,那么您可以使用POSIT来确定对象的3D坐标和方向。瞥一眼ArUco,了解我在说什么。

要从以前的方法获取3D位置,您可以使用立体视觉,并使用两个相机的质心来计算坐标。