2011-06-27 1 views
1

私が試してみて、私はエラーを提示していた映像から一部のデータを読み込むとき、私は現在、その中にMathWorks社のMATLABでの問題を抱えています:私は、約100フレームほどを読み取るための十分なメモリを持っているMatlab:私はメモリが限られていますが、ビデオからデータを読み込むための代替ソリューションはありますか?

??? Not enough memory available for 990 frames.

私は明らかな答えがより多くのメモリを買うことになると思うので、私はタイトルの代替ソリューションを言う。これらのフレームを読み込んで処理する他の方法はありますか?例えば、おそらく私はループを介してフレームを一度に読み込み、メモリを少なくするためにビデオフレームのサイズを変更することができるかもしれないと考えましたか?ビデオは1024x1024でかなりメモリを消費します。しかし、縮小することによって、私はビデオから貴重なデータを失うことになると心配しています。

ご協力いただければ幸いです!

ありがとうございます。

ps現在コード:

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

答えて

3

あなたがインデックスを与える代わりにthe documentationに示すように、メモリ内にすべてのフレームを読み取ることによってspesificフレーム(複数可)を読み取ることができます。

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をありがとう:) –

関連する問題