Считайте следующий видеокадр
Создайте 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
— Объект Input VideoReaderVideoReader
объектОбъект 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
.
Сгенерируйте код, который использует упорядоченное по строкам размещение — генерируют код, который использует упорядоченное по строкам размещение массивов (MATLAB Coder).
Ограничения Размера массивов — Для генерации кода, максимальное количество элементов массива ограничивается генератором кода и целевым компьютером. Для получения дополнительной информации смотрите Ограничения Размера Массивов для Генерации кода (MATLAB Coder).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.