从前 10 帧中找到运动矢量

Posted

技术标签:

【中文标题】从前 10 帧中找到运动矢量【英文标题】:to find motion vector from 10 previous frames 【发布时间】:2015-07-10 12:22:09 【问题描述】:

我想通过将帧划分为 8x8 子块来,并将当前帧的每个块与前 10 帧的相邻块进行比较。

我可以用单帧进行操作,但我觉得处理 N 帧很难。

如果有人知道我需要 opencv/c++ 中这个模块的代码,我需要其他人的帮助。

提前致谢

【问题讨论】:

你可以试试github.com/Itseez/opencv/blob/2.4.10.x-prep/samples/c/motempl.c -1 您需要发布一个特定的问题、您尝试的代码、您遇到的错误。但是,您为什么不简单地使用光流来查找运动矢量呢? 如果你想使用块匹配,是什么阻止你比较 2 个任意图像(距离 1、2、3 等无关紧要) 【参考方案1】:

我相信你问的是光流。

目前有two quick and easy methods for optical flow in Python。它不是 C++,但你可以从那里开始,看看它是否能达到你想要的效果。

    Lucas-Kanade,它使用从您选择的算法(SIFT、SURF、ORB、BRISK、BRIEF 等)中找到的特征描述符。我链接的示例使用 Shi-Tomasi。所有这些点都会逐帧跟踪。 Dense Optical Flow,由 Farneback 提供,可提供图像中每个像素的运动。该算法为您提供更多信息,但计算时间更长。

如果这些算法中的任何一个似乎有效,您可以找到一些示例代码(可能只是通过谷歌搜索“opencv c++ 光流示例”)并从那里开始工作。

【讨论】:

为了将来参考,块上下文中的运动向量可能指的是光流以外的东西,它考虑了单个像素的移动。参见本文中的示例第 2 节:computer-vision.org/4security/pdf/saskatchewan.pdf

以上是关于从前 10 帧中找到运动矢量的主要内容,如果未能解决你的问题,请参考以下文章

带有矢量切片的矢量指针,用于从前序和中序向量生成树

如何从前向矢量计算俯仰和偏航值

从通用视频编码中提取运动矢量

从 H.264 比特流中提取运动矢量 [关闭]

来自 MPEG4 流的运动矢量和 DC 系数

pygame中奇怪的矢量运动