これは、ビデオを読むためのヘルプ チュートリアルです。
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 でビデオを処理したことがないので、これが最善の方法かどうかはわかりません。
この種の状況に対するベストプラクティスはありますか? 私は何か見落としてますか?
ありがとう!