这是阅读视频的帮助教程:
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 处理过视频。
这种情况有最佳实践吗?我错过了什么?
谢谢!