从每帧视频中捕获单个像素行并将它们编译在一起

本文关键字:在一起 编译 像素 单个 视频 | 更新日期: 2023-09-27 18:02:19

我正在做一个项目,我需要从提供的视频文件的每一帧中获取单个水平或垂直像素行(或列,我猜),并从中创建一个图像,基本上将像素行附加到整个视频中的图像上。我打算提供的视频文件并不是一个普通的视频,它实际上只是一个从视频游戏(《光晕:致远星》)中捕捉到的镜头(游戏邦注:或者是游戏允许的-85.5°)。我会向下看,缓慢地将相机向前移动到风景上,然后从捕获的视频文件(30fps)的每帧中取出单个像素行,并将这些行编译成一张图像,这将有效地(希望)将风景重建成一张图像。

我想过用一种快速而肮脏的方式来做这件事,使用AxWindowsMediaPlayer控件并锁定窗体,使其无法移动或调整大小,然后使用图形对象来捕获屏幕,但这不够快,会有太多的问题,我需要直接访问帧。

我听说过FFLib和DirectShow。. NET,我实际上刚刚安装了Windows SDK,但还没有机会乱用DirectX的东西(我记得当我乱用它的时候,它对我来说是非常困惑的)。希望有人能给我指点一下方向。

如果任何人有任何他们认为可能有帮助的信息,我将非常感激。谢谢你!

从每帧视频中捕获单个像素行并将它们编译在一起

您可以使用在无渲染模式(例如VMR9, EVR)中渲染的视频,它允许您自己处理每一帧。通过使用帧步进播放,您可以每次步进一帧并处理帧。

DirectShow的。NET可以帮助您在可能的情况下使用托管代码,我可以推荐它。然而,它只是DirectShow的包装器,因此可能值得寻找更高级的库。

一些旁注:不同角度的光线不同,你不会遇到问题吗?也许捕捉一些截图和使用现有的拼接算法更容易?