1
这是用于读取视频的帮助教程:什么是在MATLAB上处理视频的最有效的内存方式?
xyloObj = VideoReader('xylophone.mpg');
nFrames = xyloObj.NumberOfFrames;
vidHeight = xyloObj.Height;
vidWidth = xyloObj.Width;
% Preallocate movie structure.
mov(1:nFrames) = ...
struct('cdata', zeros(vidHeight, vidWidth, 3, 'uint8'),...
'colormap', []);
% Read one frame at a time.
for k = 1 : nFrames
mov(k).cdata = read(xyloObj, k);
end
% Play back the movie once at the video's frame rate.
movie(mov, 1, xyloObj.FrameRate);
但是我想处理一个巨大的视频,如果我尝试上面的代码我的电脑运行的内存。我曾经想过读取一些帧,处理它们,读取更多的内容,处理,直到所有的帧都被处理完毕(当然,随着代码的执行删除旧帧,以保持低级别的内存消耗),但是我我不确定这是最好的方法,因为我从来没有用MATLAB处理视频。
这种情况是否有最佳做法?我错过了什么?
谢谢!
类似的问题:[如何在Matlab中用for循环处理大视频并且没有内存错误](http://stackoverflow.com/q/11718704/97160) – Amro 2013-05-02 22:37:08