exponenta event banner

writeVideo

Запись видеоданных в файл

Описание

writeVideo(v,img) записывает данные из массива в видеофайл, связанный с v.

Вы должны позвонить open(v) перед вызовом writeVideo.

пример

writeVideo(v,frame) записывает один или несколько кадров ролика, обычно возвращаемых getframe функция.

Примеры

свернуть все

Запись изображения RGB в файл Motion JPEG 2000 со сжатием без потерь.

Создайте массив, содержащий данные из образца неподвижного изображения, peppers.png.

A = imread('peppers.png');

Создать VideoWriter для нового видеофайла. Используйте 'Archival' для задания файла Motion JPEG 2000 со сжатием без потерь.

v = VideoWriter('myFile','Archival');

Проверьте тип сжатия видео для нового файла.

v.VideoCompressionMethod
ans = 
'Motion JPEG 2000'

Откройте видеофайл для записи. Затем запишите данные изображения в A в файл.

open(v)
writeVideo(v,A)

Закройте видеофайл.

close(v)

Считывание данных изображения и карты цветов из образца индексированного файла изображения, corn.tif.

[X,map] = imread('corn.tif');

Создать VideoWriter для нового индексированного AVI-файла.

v = VideoWriter('myIndexed.avi','Indexed AVI');

Назначение данных карты цветов Colormap имущество v.

v.Colormap = map;

Откройте файл для записи. После открытия файла невозможно изменить свойства v.

open(v)

Запись данных изображения в X в видеофайл. Затем закройте файл.

writeVideo(v,X)
close(v)

Преобразование файла примера, xylophone.mp4, в несжатый файл AVI.

Создайте объекты для чтения и записи видео и откройте файл AVI для записи.

reader = VideoReader('xylophone.mp4');
writer = VideoWriter('transcoded_xylophone.avi', ...
                        'Uncompressed AVI');

writer.FrameRate = reader.FrameRate;
open(writer);

Чтение и запись каждого кадра.

while hasFrame(reader)
   img = readFrame(reader);
   writeVideo(writer,img);
end

close(writer);

Запишите последовательность кадров в сжатый AVI-файл путем создания последовательности кадров, создания видеообъекта для записи в файл и последующей записи кадров в видеофайл.

Настройте оси и свойства фигуры для создания кадров для видео.

Z = peaks;
surf(Z); 
axis tight manual 
set(gca,'nextplot','replacechildren'); 

Создайте объект записи видео для выходного видеофайла и откройте объект для записи.

v = VideoWriter('peaks.avi');
open(v);

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

for k = 1:20 
   surf(sin(2*pi*k/20)*Z,Z)
   frame = getframe(gcf);
   writeVideo(v,frame);
end

close(v);

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

свернуть все

Вход VideoWriter объект. Использовать VideoWriter для создания объекта.

Значения, представляющие цветные изображения в градациях серого или RGB, указанные как массив 2-D, 3-D или 4-D:

  • Для одного изображения в градациях серого, монохромного или индексированного изображения img должен быть двумерным: высота по ширине

  • Для одного изображения truecolor (RGB), img является трехмерным: высота за шириной за 3.

  • Для последовательности изображений в градациях серого: img четырехмерный:. высота за шириной за 1 кадром. Высота и ширина должны быть одинаковыми для всех кадров в файле.

  • Для последовательности изображений RGB: img четырехмерный: высота за шириной за 3 кадрами. Высота и ширина должны быть одинаковыми для всех кадров в файле.

При создании файлов AVI или MPEG-4:

  • img является массивом single, double, или uint8 значения, представляющие одно или несколько цветных изображений в градациях серого или RGB, которые writeVideo записывается как один или несколько видеокадров RGB.

  • Данные типа single или double должно находиться в диапазоне [0,1], за исключением записи индексированных файлов AVI.

При создании файлов Motion JPEG 2000:

  • img является массивом uint8, int8, uint16, или int16 значения, представляющие одно или несколько монохромных или цветных изображений RGB.

Типы данных: single | double | int8 | int16 | uint8 | uint16

Данные кадра, заданные как массив структуры 1 к 1, представляющий один кадр, или 1 к -F массив структур, представляющих множество кадров. Каждый кадр содержит два поля: cdata и colormap. frame массив обычно возвращается getframe функция.

Если colormap не пуст, то каждый элемент cdata должен быть массивом 2-D (высота за шириной). Высота и ширина должны быть одинаковыми для всех кадров в файле.

colormap может содержать не более 256 записей. Каждый элемент colormap должно находиться в диапазоне [0,1].

При создании VideoWriter объект. profile входные данные и размер cdata определить, как writeVideo использование frame.

profile из VideoWriter объектРазмер каждого элемента cdata Поведение writeVideo

'Indexed AVI'

2-D (высота по ширине)Используйте рамку, как указано.
'Grayscale AVI'2-D (высота по ширине)Используйте рамку, как указано. colormap должно быть пустым.

Все остальные профили

2-D (высота по ширине)Создание RGB-кадров изображения с помощью colormap область
3-D (высота за шириной за 3)Игнорировать colormap поле. Создание RGB-кадров изображения с помощью cdata область

Типы данных: struct

Представлен в R2010b