Я хочу прочитать файл AVI в Matlab. Пробовал по этой ссылке: 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
(Сокращено) Результат "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, поэтому кодек уже должен быть установлен, верно?
Я использую MATLAB R2013a, Windows 7. Кто-нибудь может помочь, спасибо!