Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 如何找到移动对象的坐标来绘制矩形_Opencv - Fatal编程技术网

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

Opencv 如何找到移动对象的坐标来绘制矩形,opencv,Opencv,有人知道如何定位移动物体的坐标吗?我在网上找到了一些利用光流跟踪物体的例子,但我只得到了一些运动物体上的跟踪点。我可以在每个移动的物体周围画一个矩形吗?有没有办法得到每个移动物体的坐标?提前感谢您的帮助。谢谢 仅从物体上的几个点就很难分辨出物体的坐标。您可以使用矩()来获得一个相当稳定的点,描述对象的位置 您还可以做一些额外的工作,例如使用跟踪点进行分割,以获得跟踪对象的轮廓,这将更容易找到其质量中心。他太过分了 还有一个名为的跟踪方法,它返回一个包围被跟踪对象的矩形 如果您准确地知道要跟踪什么

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

仅从物体上的几个点就很难分辨出物体的坐标。您可以使用矩()来获得一个相当稳定的点,描述对象的位置

您还可以做一些额外的工作,例如使用跟踪点进行分割,以获得跟踪对象的轮廓,这将更容易找到其质量中心。他太过分了

还有一个名为的跟踪方法,它返回一个包围被跟踪对象的矩形

如果您准确地知道要跟踪什么,并且能够确保跟踪到被跟踪对象上的一些已知点,并且能够识别它们,则可以使用POSIT确定对象的三维坐标和方向。看一眼,了解我在说什么


要从以前的方法中获取三维位置,可以使用立体视觉,使用两个摄像机的质心来计算坐标。

< P>将矩形与光流所对应的点拟合,可以将拟合矩形的中心视为对整个运动体2D轨迹的公平估计。

u可以使用矩算子< /P> 首先计算轮廓尺寸。。。。 只需添加这个代码块

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()的输出,

您好,谢谢您的回复。我对分割和跟踪之间的关系感到困惑。我试着用背景减法得到运动物体的轮廓,但是我怎样才能跟踪它们呢?我是否仍然需要使用光流,但如何使用?我只是把分割作为一个免费的建议。应该多挖一些来看看它是如何被实际使用的。无论如何,你可以在它们周围画一个矩形,你可以使用重心,或者其他任何东西,只要你与它一致,那么每个物体的位置都是相同的。至于精确位置,您可能希望使用,因为它跟踪场景中以前设置的特征,而不是仅显示任何移动的位置。