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);

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

свернуть все

Введите объект VideoReader. Используйте VideoReader функция для создания объекта VideoReader из файла видео.

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

свернуть все

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

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

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

H-by- W-by-3

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

'Grayscale', без указания 'native'uint8

H-by- W-by-1

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

'Indexed', без указания 'native'uint8

H-by- W-by-3

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

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

1 на 1

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

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

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

H-by- W-by-1

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

'Mono8 Signed'int8

H-by- W-by-1

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

'Mono16'uint16

H-by- W-by-1

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

'Mono16 Signed'int16

H-by- W-by-1

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

'RGB24'uint8

H-by- W-by-3

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

'RGB24 Signed'int8

H-by- W-by-3

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

'RGB48'uint16

H-by- W-by-3

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

'RGB48 Signed'int16

H-by- W-by-3

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

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

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

Ограничения

  • Для некоторых файлов AVI, MOV или MP4 в Windows®, с использованием readFrame функция для чтения всех систем координат в файле может привести к другому количеству систем координат, чем значение, возвращаемое NumFrames свойство VideoReader объект.

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

.
Введенный в R2014b