2011-06-27 17 views
1

我目前有在與MATLAB的一個問題,當我試圖從視頻的一些數據,我提出了一個錯誤閱讀:Matlab:我的內存有限,是從視頻中讀取數據的替代解決方案嗎?

??? Not enough memory available for 990 frames.

我有可供閱讀100幀左右足夠的內存。

我說標題中的備用解決方案,因爲我會假設顯而易見的答案是購買更多的內存。有沒有其他的方式來閱讀這些框架並處理它們?例如,我認爲或許我可以通過一個循環一次讀取幀,並調整視頻幀的大小以便使用較少的內存(或通過備用程序執行此操作)?該視頻在1024x1024時的內存密集程度非常高。然而,通過縮小尺寸,我擔心我會失去視頻中的寶貴數據。

任何幫助將不勝感激!

在此先感謝:)

ps。當前代碼:

vid = VideoReader('video.avi'); 
frames = read(vid); 

回答

3

您可以通過給定指標,而不是讀所有的幀到存儲器中作爲the documentation定的讀取spesific幀(S)。

frames = read(vid); %# Read all 
frames = read(vid, index); %# Read only the specified frames 

frames = read(vid, [1 50]); %# Read the first 50 frames 
+0

我已經試過這一點,但最好我需要能夠同時處理所有的視頻。鑑於我目前的記憶,你認爲這是可能的嗎? –

+0

我不這麼認爲。順便說一下,爲什麼你需要擁有所有的視頻? – petrichor

+0

好的。那麼'需要'可能是錯誤的詞,可能只是我懶惰!如果我需要(需要在這裏正確使用!)處理整個視頻,我是否應該分段應用它?正如我在寫這篇文章,我現在正在回答我自己的問題,因爲我確信你會說停止懶惰,並且做到這一點。感謝這btw :) –