Как определить количество кадров с помощью vision.VideoFileReader

У меня есть видео, как я могу определить количество кадров в видео, используя встроенную функцию Matlab - vision.VideoFileReader?

Это не то же самое, что VideoReader, по которому я могу получить количество кадров:

vidObj = VideoReader('varFrameRateFile.wmv');
numFrames = vidObj.NumberOfFrames;

person user3168226    schedule 09.08.2014    source источник


Ответы (1)


videoFReader = vision.VideoFileReader(FILENAME) 
Frames = 0;
while ~isDone(videoFReader)
  I = step(videoFReader);
  Frames = Frames+1;
end

Обновление: существует альтернативное решение, которое не требует перебора всех кадров в видео.

videoSource2=VideoReader(FILENAME);
frames=read(videoSource2);
totalFrameNumber=size(frames,4);

Надеюсь это поможет..

person lakesh    schedule 09.08.2014
comment
+1 — это единственный способ прочитать количество кадров из программы чтения видеофайлов CVST. Однако, если вы не хотите этого делать, вы всегда можете использовать VideoReader и получить поле количества кадров в соответствии с OP. - person rayryeng; 09.08.2014
comment
Кстати, я исправил небольшую опечатку в вашем коде. Символ not в MATLAB представлен как ~, а не !. - person rayryeng; 09.08.2014