Иллюстрации в этой документации показывают видеопоток и содержимое буфера памяти как последовательность отдельных кадров. В действительности каждый кадр является многомерным массивом. Дополнительные сведения об использовании многомерных массивов см. в разделе Многомерные массивы. На следующем рисунке показан формат отдельного кадра.
Формат отдельного кадра

В следующих разделах описывается, как панель инструментов
В этом разделе также описывается несколько способов просмотра полученных данных изображения.
Видеоформат, используемый устройством получения изображения, является основным определяющим фактором ширины, высоты и количества полос в каждом кадре изображения. Устройства получения изображений обычно поддерживают несколько видеоформатов. Формат видео выбирается при создании объекта ввода видео (описано в разделе Определение формата видео). Объект ввода видео сохраняет формат видео в VideoFormat собственность.
Объект ввода видео сохраняет разрешение видео в VideoResolution собственность.
Каждый кадр изображения является трехмерным; однако формат видео определяет количество полос в третьем измерении. Для цветных видеоформатов, таких как RGB, каждый кадр изображения имеет три полосы: по одной для красных, зеленых и синих данных. Другие форматы видео, такие как стандарт RS170 в градациях серого, имеют только одну полосу. Объект ввода видео сохраняет размер третьего измерения в NumberOfBands собственность.
Примечание
Поскольку устройства обычно выражают разрешение видео в виде ширины по высоте, панель инструментов использует это соглашение для VideoResolution собственность. Однако при вводе данных в рабочее пространство MATLAB ® размеры кадра изображения перечисляются в обратном порядке по высоте и ширине, поскольку MATLAB выражает размеры матрицы в виде строк и столбцов .
При указании области интереса (ROI) в захватываемом изображении размеры ROI определяют размеры возвращаемых кадров изображения. VideoResolution свойство определяет размеры данных изображения, предоставляемых устройством; ROIPosition свойство определяет размеры регистрируемых кадров изображения. См. раздел ROIPosition для получения дополнительной информации.
В следующем примере показано, как формат видео влияет на размер возвращаемых кадров изображения.
Выберите формат видео - Используйте imaqhwinfo для просмотра списка видеоформатов, поддерживаемых устройством получения изображений. В этом примере показаны форматы видео, поддерживаемые устройством захвата кадров Matrox ® Orion. Форматы являются стандартными, например RS170, NTSC и PAL. Эти стандарты определяют разрешение изображения.
info = imaqhwinfo('matrox');
info.DeviceInfo.SupportedFormats
ans =
Columns 1 through 4
'M_RS170' 'M_RS170_VIA_RGB' 'M_CCIR' 'M_CCIR_VIA_RGB'
Columns 5 through 8
'M_NTSC' 'M_NTSC_RGB' 'M_NTSC_YC' 'M_PAL'
Columns 9 through 10
'M_PAL_RGB' 'M_PAL_YC'Создать объект получения изображения - в этом примере создается объект ввода видео для устройства получения изображения Matrox с использованием формата видео по умолчанию, RS170. Для запуска этого примера в системе используйте imaqhwinfo чтобы получить конструктор объекта для устройства получения изображения и заменить этот синтаксис следующим кодом.
vid = videoinput('matrox',1);Просмотр формата видео и свойств разрешения видео - панель инструментов создает объект с форматом видео по умолчанию. Этот формат определяет разрешение видео.
vid.VideoFormat ans = M_RS170 vid.VideoResolution ans = [640 480]
Ввод одного кадра в рабочее пространство - вызов getsnapshot для ввода кадра в рабочую область.
frame = getsnapshot(vid);
Размеры возвращаемых данных отражают разрешение изображения и значение NumberOfBands собственность.
vid.NumberOfBands ans = 1 size(frame) ans = 480 640
Запуск объекта сбора изображений - вызовите start для запуска объекта получения изображения.
start(vid)
Объект выполняет немедленный триггер и начинает получение кадров данных.
Поместить несколько кадров в рабочую область - вызовите getdata для ввода нескольких кадров изображения в рабочую область MATLAB.
data = getdata(vid,10);
getdata функция переносит 10 кадров данных в рабочую область. Заметим, что возвращаемые данные являются четырёхмерным массивом: каждый кадр является трёхмерным, а n-й кадр обозначается четвёртым измерением.
size(data) ans = 480 640 1 10
Очистить - всегда удалять объекты сбора изображений из памяти и переменные, которые ссылаются на них, когда они больше не нужны.
delete(vid) clear vid
По умолчанию панель инструментов возвращает кадры изображения в типе данных, используемом устройством получения изображения. Если нет типа данных MATLAB, соответствующего собственному типу данных объекта, getdata выбирает тип данных MATLAB, сохраняющий числовую точность. Например, в формате RGB 555 каждый компонент цвета выражается в 5-битах. getdata возвращает каждый цвет как uint8 значение.
Можно указать требуемый тип данных getdata для использования для возвращенных данных. Например, можно указать, что getdata возврат кадров изображения в виде массива класса double. Для просмотра списка всех поддерживаемых типов данных см. getdata справочная страница.
Следующий пример иллюстрирует тип данных возвращенного изображения.
Создать объект получения изображения - в этом примере создается объект ввода видео для устройства получения изображения Matrox. Для запуска этого примера в системе используйте imaqhwinfo чтобы получить конструктор объекта для устройства получения изображения и заменить этот синтаксис следующим кодом.
vid = videoinput('matrox',1);Ввод одного кадра в рабочее пространство - вызов getsnapshot для ввода кадра в рабочую область.
frame = getsnapshot(vid);
Просмотр класса возвращенных данных - используйте class для определения типа данных, используемого для возвращенных данных изображения.
class(frame) ans = uint8
Очистить - всегда удалять объекты сбора изображений из памяти и переменные, которые ссылаются на них, когда они больше не нужны.
delete(vid) clear vid
После переноса данных в рабочую область MATLAB их можно просматривать как любое другое изображение в MATLAB.
Программное обеспечение Toolbox™ получения изображений включает в себя функцию, imaqmontage, который можно использовать для просмотра всех кадров многокадрового массива изображений в одном объекте изображения MATLAB. imaqmontage упорядочивает кадры так, что они примерно образуют квадрат. imaqmontage может быть полезен для визуального сравнения нескольких кадров.
MATLAB включает две функции, image и imagesc, которые отображают изображения в окне фигуры. Обе функции создают объект изображения MATLAB для отображения кадра. Свойства объекта изображения можно использовать для управления аспектами отображения. imagesc функция автоматически масштабирует входные данные.
Программное обеспечение Toolbox™ обработки изображений включает в себя дополнительную подпрограмму отображения, называемую imshow. Как image и imagesc, эта функция создает объект изображения MATLAB. Однако imshow также автоматически задает различные свойства объекта изображения для оптимизации отображения.