在matlab中逐帧循环播放视频文件

时间:2013-10-19 22:13:29

标签: matlab video

我需要在matlab中逐帧循环浏览视频文件操作每一帧(用于图像背景减去)并将结果保存到新文件中,我无法弄清楚如何做到这一点,因为我使用的是VideoReader和VideoWriter libs和我无法弄清楚如何做到这一点。 免责声明 - 这是一个新的任务,我想得到如何在for循环(对于整个电影)使用VideoReader和VideoWriter的答案和图像减法 - 我将自己处理... 提前谢谢......

1 个答案:

答案 0 :(得分:1)

我从来不需要处理视频,但查看VideoReaderVideoWriter的Mathworks文档,我想出了以下代码来读取mp4文件,可选择更改视频,以及写一个avi文件。

vidIn = VideoReader('sample_mpeg4.mp4');
vidOut = VideoWriter('sample_out');
open(vidOut)
for ii = 1:vidIn.NumberOfFrames;
  pic = read(vidIn, ii);
  % Optional processing of 'pic' here
  writeVideo( vidOut, pic);
end
close(vidOut)

我想要注意的是我无法让MATLAB读取我原来的.avi文件,但是,它写得很好,我能够毫无问题地播放它。