我有一个视频,我正在对matlab(mfile)中的视频帧进行一些处理。之后,编译帧并通过使用那些处理的帧来制作视频。视频中有大约300帧。由于处理非常繁重所以我的计算机冻结了。我只是不想显示那些处理过的帧,而我希望那些帧应该存储在另一个mfile中。我知道像saveas
或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);
任何帮助都将受到高度赞赏。
答案 0 :(得分:0)
目前还不清楚,但听起来您正遭受某种RAM限制。 MATLAB的视频转换程序不必要地昂贵,有更好的方法来做这些事情。我建议处理输入视频并将300帧保存为图像文件,然后使用ffmpeg将它们编译成视频。您甚至可能希望使用ffmpeg将输入视频转换为输入静止图像,并将静止图像一次加载到matlab中。