逐帧读取和显示视频文件

MMH*_*MMH 5 video matlab

我正在与Matlab合作.我想读取一个视频文件并在每帧进行一些计算并显示每一帧.我写了下面的代码,但每次只显示第一帧.任何人都可以帮忙.

mov=VideoReader('c:\vid\Akiyo.mp4');
nFrames=mov.NumberOfFrames;
for i=1:nFrames
  videoFrame=read(mov,i);
  imshow(videoFrame);

end
Run Code Online (Sandbox Code Playgroud)

Par*_*kar 10

注意:mmreaderMATLAB已停止使用API​​,因此更喜欢使用VideoReader.

请参阅@Vivek的评论.

我经常这样做:

obj=mmreader('c:\vid\Akiyo.mp4');
nFrames=obj.NumberOfFrames;
for k=1:nFrames
    img=read(obj,k);
    figure(1),imshow(img,[]);
end
Run Code Online (Sandbox Code Playgroud)

就你的代码而言,我看到了MATLAB的文档.你应该按照以下顺序做事:

mov=VideoReader('c:\vid\Akiyo.mp4');
vidFrames=read(mov);
nFrames=mov.NumberOfFrames;
for i=1:nFrames
   imshow(vidFrames(:,:,i),[]);  %frames are grayscale
end
Run Code Online (Sandbox Code Playgroud)

  • 需要注意的是:'mmreader'API已被MATLAB停用,因此更喜欢使用'VideoReader'. (2认同)