Matlab で AVI ファイルを読みたいです。このリンクに従って試してみました: http://inside.mines.edu/~whoff/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 画像を 1 つ取得する
(短縮) 「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 が利用可能であるため、最初のフレームを読み取ることができるはずです。AVI ファイルは VLC-Player で再生できるので、コーデックはインストールされているはずですよね?
Windows 7 で MATLAB R2013a を使用しています。