0

ビデオがあり、matlab(mfile) でビデオのフレームを処理しています。その後、フレームがコンパイルされ、それらの処理されたフレームを使用してビデオが作成されます。ビデオには約 300 フレームあります。処理が重いのでパソコンがフリーズします。処理されたフレームを表示したくないだけで、それらのフレームを別の mfile に保存する必要があります。saveasorのようなコマンドは知っていますset(gcf,'visible','off')が、私の場合は機能しません。私がこれまでに持っているもの:

aviobj =avifile('trail.avi','Compression','None','fps',1); %video to be made from frames
obj = aviread('highwayvideo.avi');
for 1:300
    .......... % processing
imi = getframe(gcf);
aviobj = addframe(aviobj,imi);
end
aviobj = close(aviobj);

どんな助けでも大歓迎です。

4

1 に答える 1

0

はっきりしていませんが、ある種のRAMの制限に苦しんでいるようです。MATLABのビデオ変換ルーチンは不必要に高価であり、そのようなことを行うためのより良い方法があります。入力ビデオを処理し、300フレームを画像ファイルとして保存してから、ffmpegを使用してそれらをビデオにコンパイルすることをお勧めします。ffmpegを使用して、入力ビデオを入力静止画に変換し、静止画を一度に1つずつmatlabにロードすることもできます。

于 2012-12-28T21:20:21.423 に答える