gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:15:08 24 4
gpt4 key购买 nike

我正在做一个项目,我需要从提供的视频文件的每一帧中获取单个水平或垂直像素行(我猜是列)并从中创建图像,基本上是附加像素行在整个视频中的图像上。我计划提供的视频文件不是常规视频,它实际上只是从视频游戏(光环:致远星)中平移相机的捕获,它是直视向下的(或者游戏允许我看到的最远距离,即 -85.5 °).我会向下看,非常缓慢地将相机向前平移到风景上,然后从捕获的视频文件 (30fps) 的每一帧中取出一个像素行,并将这些行编译成一张图像,该图像将有效地(希望)将风景重建为单张图片。

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

我听说过 FFLib 和 DirectShow.NET,实际上我只是安装了 Windows SDK,但还没有机会弄乱 DirectX 的东西(我记得前阵子让我很困惑当我搞砸了)。希望有人能给我指明正确方向。

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

最佳答案

您可以使用在 renderless mode 中呈现的视频(例如 VMR9、EVR),它允许您自己处理每一帧。通过使用 frame stepping playback您可以每次步进一帧并处理该帧。

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

一些旁注:您不会遇到因角度而异的照明问题吗?也许捕获一些屏幕截图并使用 existing stitching algorithms 更容易?

关于c# - 从每一帧视频中捕获单个像素行并将它们编译在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6733031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com