我需要在matlab中逐帧循环浏览视频文件操作每一帧(用于图像背景减去)并将结果保存到新文件中,我无法弄清楚如何做到这一点,因为我使用的是VideoReader和VideoWriter libs和我无法弄清楚如何做到这一点。 免责声明 - 这是一个新的任务,我想得到如何在for循环(对于整个电影)使用VideoReader和VideoWriter的答案和图像减法 - 我将自己处理... 提前谢谢......
答案 0 :(得分:1)
我从来不需要处理视频,但查看VideoReader
和VideoWriter
的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文件,但是,它写得很好,我能够毫无问题地播放它。