readFrame

Считайте следующий видеокадр

Описание

пример

video = readFrame(v) читает следующий доступный видеокадр из файла, сопоставленного с v.

video = readFrame(v,'native') возвращает данные в формате, заданном VideoFormat свойство.

Примеры

свернуть все

Создайте VideoReader объект для файла ролика в качестве примера xylophone.mp4.

v = VideoReader('xylophone.mp4');

Считайте все системы координат из видео, одна система координат за один раз.

while hasFrame(v)
    frame = readFrame(v);
end

Отобразите информацию о последней системе координат, возвращенной readFrame.

whos frame
  Name         Size                Bytes  Class    Attributes

  frame      240x320x3            230400  uint8              

Создайте видео объект читателя и считайте видеокадры, запускающиеся в определенное время.

Создайте объект считать файл ролика в качестве примера xylophone.mp4.

v = VideoReader('xylophone.mp4');

Задайте чтение, чтобы начать 2,5 секунды с начала видео.

v.CurrentTime = 2.5;

Создайте объект осей отобразить систему координат. Затем продолжите читать и отображать видеокадры, пока больше систем координат не будет доступно в чтение.

currAxes = axes;
while hasFrame(v)
    vidFrame = readFrame(v);
    image(vidFrame, 'Parent', currAxes);
    currAxes.Visible = 'off';
    pause(1/v.FrameRate);
end

Читайте и воспроизведите демонстрационный файл ролика, xylophone.mp4.

Создайте VideoReader возразите, чтобы считать данные из файла примера. Затем определите ширину и высоту видео.

xyloObj = VideoReader('xylophone.mp4');

vidWidth = xyloObj.Width;
vidHeight = xyloObj.Height;

Создайте массив структур фильма, mov.

mov = struct('cdata',zeros(vidHeight,vidWidth,3,'uint8'),...
    'colormap',[]);

Считайте одну систему координат за один раз, пока конец видео не будет достигнут.

k = 1;
while hasFrame(xyloObj)
    mov(k).cdata = readFrame(xyloObj);
    k = k+1;
end

Измерьте фигуру на основе ширины и высоты видео. Затем воспроизведите фильм однажды в частоте видеокадров.

hf = figure;
set(hf,'position',[150 150 vidWidth vidHeight]);

movie(hf,mov,1,xyloObj.FrameRate);

Входные параметры

свернуть все

Объект Input VideoReader. Используйте VideoReader функция, чтобы создать объект VideoReader из вашего видеофайла.

Выходные аргументы

свернуть все

Данные о видеокадре, возвращенные как массив. Размерности и тип данных video зависьте от VideoFormat свойство obj.

В следующей таблице перечислены тип данных и размерности video для большинства файлов. H высота фрейма изображения и W ширина фрейма изображения. Когда VideoFormat свойство obj 'Indexed', тип данных и размерности video зависьте от того, вызываете ли вы read с 'native' аргумент.

Значение obj.VideoFormatТип данных videoРазмерности videoОписание
'RGB24', с или не задавая 'native'uint8

H- W- 3

Изображение RGB24

'Grayscale', не задавая 'native'uint8

H- W- 1

Полутоновое изображение

'Indexed', не задавая 'native'uint8

H- W- 3

Изображение RGB24

'Grayscale' или 'Indexed', определение 'native'struct

1 на 1

Фильм MATLAB®, который является массивом массивов структур системы координат, каждый содержащий поля cdata и colormap.

Для файлов Motion JPEG 2000, типа данных и размерностей video следующие.

Значение obj.VideoFormatТип данных videoРазмерности videoОписание
'Mono8'uint8

H- W- 1

Моно изображение

'Mono8 Signed'int8

H- W- 1

Моно изображение со знаком

'Mono16'uint16

H- W- 1

Моно изображение

'Mono16 Signed'int16

H- W- 1

Моно изображение со знаком

'RGB24'uint8

H- W- 3

Изображение RGB24

'RGB24 Signed'int8

H- W- 3

RGB24 подписанное изображение

'RGB48'uint16

H- W- 3

Изображение RGB48

'RGB48 Signed'int16

H- W- 3

RGB48 подписанное изображение

Отметьте, чтобы использовать формат, заданный в VideoFormat свойство, заданное как вектор символов или скаляр строки, 'native'.

Типы данных: char | string

Расширенные возможности

Смотрите также

| | |

Введенный в R2014b