Считайте кадр видео из видеофайла
video = readFrame(v)
video = readFrame(v,'native')
Создайте объект VideoReader
для файла ролика в качестве примера, xylophone.mp4
.
v = VideoReader('xylophone.mp4');
Считайте все кадры видео.
while hasFrame(v) video = readFrame(v); end whos video
Name Size Bytes Class Attributes video 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
— Input VideoReaderОбъект VideoReader
Объект Input 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®, который является массивом массивов структур кадра, каждый содержащий поля |
Для файлов 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
Указания и ограничения по применению:
Генерация кода для readFrame
не поддерживает дополнительный позиционный параметр native
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.