Чтение следующего видеокадра
Создайте VideoReader объект для примера файла фильма xylophone.mp4.
v = VideoReader('xylophone.mp4');Считывайте все системы координат из видео, по одной системе координат за раз.
while hasFrame(v) frame = readFrame(v); end
Отображение информации о последней системе координат, возвращенном readFrame.
whos frameName 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);v - Входной объект VideoReaderVideoReader объектВведите объект VideoReader. Используйте VideoReader функция для создания объекта VideoReader из файла видео.
video - Данные видеокадраДанные видеокадра, возвращенные как массив. Размерности и тип данных video зависят от VideoFormat свойство obj.
В следующей таблице перечислены тип данных и размерности video для большинства файлов. H - высота и W системы координат изображения - ширина системы координат изображения. Когда VideoFormat свойство obj является 'Indexed', тип данных и размерности video зависит от того, позвоните ли вы read с 'native' аргумент.
Значение obj.VideoFormat | Тип данных video | Размерности video | Описание |
|---|---|---|---|
'RGB24', с указанием или без 'native' | uint8 |
| RGB24 изображение |
'Grayscale', без указания 'native' | uint8 |
| Полутоновое изображение |
'Indexed', без указания 'native' | uint8 |
| RGB24 изображение |
'Grayscale' или 'Indexed', определение 'native' | struct | 1 на 1 | MATLAB® movie, который является массивом системы координат массивов структур, каждый из которых содержит поля |
Для файлов Motion JPEG 2000, тип данных и размерности video являются следующими.
Значение obj.VideoFormat | Тип данных video | Размерности video | Описание |
|---|---|---|---|
'Mono8' | uint8 |
| Моно- изображение |
'Mono8 Signed' | int8 |
| Моно подписал изображение |
'Mono16' | uint16 |
| Моно- изображение |
'Mono16 Signed' | int16 |
| Моно подписал изображение |
'RGB24' | uint8 |
| RGB24 изображение |
'RGB24 Signed' | int8 |
| RGB24 изображение со знаком |
'RGB48' | uint16 |
| RGB48 изображение |
'RGB48 Signed' | int16 |
| RGB48 изображение со знаком |
'native' - Флаг для использования формата, заданного в VideoFormat свойствоФлаг для использования формата, заданного в VideoFormat свойство, заданное как вектор символов или строковый скаляр, 'native'.
Типы данных: char | string
Для некоторых файлов AVI, MOV или MP4 в Windows®, с использованием readFrame функция для чтения всех систем координат в файле может привести к другому количеству систем координат, чем значение, возвращаемое NumFrames свойство VideoReader объект.
Указания и ограничения по применению:
Генерация кода для readFrame не поддерживает необязательный позиционный аргумент native.
Сгенерируйте код, который использует размещение Row-Major - Сгенерируйте код, который использует размещение Массив (MATLAB Coder).
Ограничения размера массива - для генерации кода максимальное количество элементов массива ограничено генератором кода и целевым компьютером. Для получения дополнительной информации смотрите Ограничения размера массива для Генерации кода (MATLAB Coder).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.