在opencv c ++(移动相机)上检测运动

Posted

技术标签:

【中文标题】在opencv c ++(移动相机)上检测运动【英文标题】:detecting motion on opencv c++ (moving camera) 【发布时间】:2012-10-10 18:39:19 【问题描述】:

我正在为大学做一个项目,我正在使用 OpenCV(这真的很棒)。

现在我的问题是: 我有一个视频 (.avi),我已经检测到所有我想知道的关于突然出现在红色和黄色之间的 RGB 范围内的斑点的信息。在我实现了一个保存所有像素值信息的矩阵之后,最后我创建了一个红色比例的图像,表示中值像素值。

真正的问题是视频不是静态的,并且相机会移动(不是太多,但会移动)。 我可以计算相机运动的 x 和 y 坐标,以便移动矩阵的值吗?

【问题讨论】:

您是从哪里学习运动检测的?请帮忙 【参考方案1】:

谁在乎你的英语?直到我们了解您的问题 :) 您真正可以做的是尝试在 OpenCV 中实现的 KLT 运动检测。这是一个指向 KLT 的链接,也称为 optical flow 如果您可以过滤掉仅限于 blob 的运动矢量,您当然可以获取您想要跟踪的对象。更好地为 KLT 提供要跟踪的对象初始坐标/区域。您是否检查过 OpenCV blobs 库以获取 blob?这是link

【讨论】:

谢谢!是的,我知道 cvblob 并且它在我的项目中实现,我计算 blob 的面积和质心的坐标,并为每个 blob 分配一个标签,正如我之前阅读的那样,最好的解决方案是光流,我希望它将工作!相机运动真的很慢,如果我能用光流检测到坐标,我就完成了这个项目! :) 谢谢! 欢迎,如果你做到了,请告诉我! 是的,我做到了!我已经用 lucas kanade 完成了,我计算了每一帧中一系列点之间的差异,结果非常好!谢谢! 非常好!它是许多真正适用于计算机视觉的少数东西之一

以上是关于在opencv c ++(移动相机)上检测运动的主要内容,如果未能解决你的问题,请参考以下文章

如何检测相机上的运动以移动鼠标

如何使用 Unity3D 检测移动设备上的抖动运动? C#

OpenCV:图像稳定

Opencv算法在移动/抖动相机中检测移动车辆

如何检测设备在平面上的运动

使用vue学习three.js之移动相机-使相机沿指定路径运动,相机巡检,是物体在指定路径上运动