我想在 Matlab 中读取一个 AVI 文件。我根据这个链接试过了: http: //inside.mines.edu/~woff/courses/EENG512/lectures/other/Matlab_movies.pdf:
clear all
close all
movieObj = VideoReader('ap001_BL0_SP2_cam03_compressed.avi'); % open file
get(movieObj) % display all information about movie
nFrames = movieObj.NumberOfFrames; %shows 310 in my case
for iFrame=1:2:nFrames
I = read(movieObj,iFrame); % get one RGB image
imshow(I,[]); % Display image
end
我收到以下错误:
使用 VideoReader/read 时出错(第 145 行)请求的帧索引超出文件末尾。
test_video_read 中的错误(第 9 行) I = read(movieObj,iFrame); % 得到一张 RGB 图像
(缩短)“get(movieObj)”的输出是:
General Settings:
Duration = 10.3333
Name = ap001_BL0_SP2_cam03_compressed.avi
Type = VideoReader
Video Settings:
BitsPerPixel = 24
FrameRate = 30
Height = 1280
NumberOfFrames = 310
VideoFormat = RGB24
Width = 960
所以应该可以读取第一帧,因为有 310 个可用!我可以在 VLC-Player 中播放 AVI 文件,所以应该已经安装了编解码器,对吧?
我正在使用 MATLAB R2013a,Windows 7。谁能帮忙,谢谢!