Чтение следующего видеокадра
Создайте 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);
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.