1

我们目前正在为需要 OpenCV 的程序开发一些功能。摆在桌面上的一个想法是使用“缓冲区”,它将一分钟的视频数据保存到内存中,然后我们需要为每个事件触发从该缓冲区中提取一个 13 秒的视频文件。

目前我们对 OpenCV 没有足够的经验,所以我们不知道这是否可能。查看文档,唯一允许写入内存的函数是 imencode 和 imdecode,但这些是图像。如果我们能找到一种将图像序列写入视频文件的方法,那将是整洁的,但现在我们的想法是使用视频缓冲区。

我们还使用 OpenCV 版本 2 规范。

TL;DR 我们想知道是否可以将视频的一部分写入内存。

4

1 回答 1

1

在 OpenCV 中,每个视频都被视为帧(图像)的集合。根据相机的 FPS,您可以定期捕获帧并用它们填充缓冲区。同时,您可以销毁最旧的帧(在 1 分钟前拍摄)。所以可以实现一个FIFO数据结构来实现你的目标。获取 13 秒的样本很容易,只需跳转到随机帧并将 13*FPS 帧顺序写入视频文件即可。

但是会存在一些同步和计时问题 AFAIK 并且就我使用 OpenCV 而言。

是有关视​​频 i/o 的 OpenCV 文档的链接。尤其是最后一段代码是您将用于编写的代码。

TL;DR:没有视频,有连续图像,差别不大。所以你需要这样对待他们。

于 2012-09-03T10:08:51.740 回答