簡體   English   中英

從視頻的每一幀中捕獲單個像素行並將它們編譯在一起

[英]Capture a single pixel row from each frame of video and compile them together

我正在做一個項目,我需要從提供的視頻文件的每一幀中獲取單個水平或垂直像素行(或列,我猜)並從中創建一個圖像,基本上將像素行附加到圖像上在整個視頻中。 我計划提供的視頻文件不是普通視頻,它實際上只是從視頻游戲(光環:致遠星)中拍攝的平移攝像機,直視(或游戲允許的范圍內,即 -85.5 °)。 我會向下看,非常緩慢地在風景上向前平移相機,然后從捕獲的視頻文件 (30fps) 的每一幀中獲取一個像素行,並將這些行編譯成一個圖像,該圖像將有效地(希望)將風景重建為單個圖像。

我想過以快速而骯臟的方式來做這件事,使用 AxWindowsMediaPlayer 控件並鎖定表單,使其無法移動或調整大小,然后只使用 Graphics object 來捕獲屏幕,但這還不夠快,會有太多問題,我需要直接訪問框架。

我聽說過 FFLib 和 DirectShow.NET,實際上我剛剛安裝了 Windows SDK 但還沒有機會弄亂 DirectX 的東西(我記得前一段時間我搞砸了它讓我很困惑用它)。 希望有人可以給我一個正確方向的指針。

如果有人有任何他們認為可能有幫助的信息,我將非常感激。 謝謝!

您可以使用以無渲染模式(例如 VMR9、EVR)渲染的視頻,它允許您自己處理每一幀。 通過使用幀步進播放,您可以每次步進一幀並處理該幀。

DirectShow.NET 可以幫助您盡可能使用托管代碼,我可以推薦它。 然而,它只是 DirectShow 的一個包裝器,因此尋找更高級的庫也是值得的。

一些旁注:您不會遇到不同角度的照明問題嗎? 也許捕獲一些屏幕截圖並使用現有的拼接算法更容易?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM