如何找到运动物体的坐标来绘制矩形

  • 本文关键字:坐标 绘制 何找 运动 opencv
  • 更新时间 :
  • 英文 :


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

将一个矩形拟合到光流得到的点上,您可以将拟合矩形的中心视为整个运动物体的二维轨迹的合理估计。

你可以使用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()的输出,

仅仅从物体上的几个点来判断物体的坐标是相当困难的。你可以使用力矩(这里有一个教程)来获得一个相当稳定的点来描述你的物体在哪里。

你也可以做一些额外的工作,比如使用跟踪点分割来获得跟踪对象的轮廓,这应该会更容易找到它的质量中心。太过分了。

还有一个叫做CAMSHIFT的跟踪方法,它返回被跟踪对象的矩形边界。

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

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

最新更新