有谁知道如何定位移动物体的坐标?我在网上找到了一些关于使用光流跟踪物体的例子,但我只在移动物体上得到了一些跟踪点。我可以在每个移动对象周围画一个矩形吗?有没有办法获取每个移动物体的坐标?提前感谢任何帮助。谢谢!
问问题
5645 次
3 回答
1
将矩形拟合到通过光流获得的点,您可以将拟合矩形的中心视为对整个移动体的 2D 轨迹的公平估计。
于 2013-03-10T12:56:17.233 回答
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() 的输出,
于 2013-05-28T15:01:45.507 回答
0
仅从对象上的几个点很难判断对象的坐标。您可以使用时刻(这里是一个教程)来获得一个非常稳定的点来描述您的对象在哪里。
您还可以做一些额外的工作,例如使用跟踪点进行分割以获取跟踪对象的轮廓,这应该更容易找到它的质心。过火了。
还有一个被调用的跟踪方法CAMSHIFT
,它返回一个包围被跟踪对象的矩形。
如果您确切地知道您在跟踪什么,并且可以确保跟踪对象上的一些已知点,并且您能够识别它们,那么您可以使用 POSIT 来确定对象的 3D 坐标和方向。看一眼ArUco就知道我在说什么。
要从以前的方法中获取 3D 位置,您可以使用立体视觉,并使用两个相机的质心来计算坐标。
于 2013-03-09T08:41:20.987 回答