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 将输入视频转换为输入静止图像,然后一次将静止图像加载到 matlab 中。

于 2012-12-28T21:20:21.423 回答