Работа с Данные в рабочем пространстве MATLAB

Общие сведения об данных

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

Формат отдельной системы координат

В следующих разделах описывается, как тулбокс

Этот раздел также описывает несколько способов просмотра полученных данных изображения.

Определение размерностей данных

Формат видео, используемый устройством сбора изображений, является основным определяющим ширины, высоты и количества полос в каждой системе координат изображения. Устройства для сбора изображений обычно поддерживают несколько видео форматов. Формат видео выбирается при создании объекта входа видео (см. раздел «Определение формата видео»). Объект входа видео хранит формат видео в VideoFormat свойство.

Объект входа видео сохраняет разрешение видео в VideoResolution свойство.

Каждая система координат изображения является трехмерным; однако формат видео определяет количество полос в третьей размерности. Для цветных видео форматов, таких как RGB, каждая система координат изображения имеет три полосы: по одной для красных, зеленых и синих данных. Другие форматы видео, такие как стандарт RS170 полутонового цвета, имеют только одну полосу. Объект входа видео хранит размер третьей размерности в NumberOfBands свойство.

Примечание

Поскольку устройства обычно выражают разрешение видео как ширину по высоте, тулбокс использует это соглашение для VideoResolution свойство. Однако, когда данные вносятся в MATLAB® рабочая область, размеры системы координат изображения перечислены в обратном порядке, высота за шириной, потому что MATLAB выражает размерности матрицы как строки за столбцом.

ROI и размерности изображений

Когда вы задаете видимую область (ROI) в захватываемом изображении, размерности информация только для чтения определяют размерности возвращаемых систем координат изображения. The VideoResolution свойство задает размерности данных изображения, предоставляемых устройством; а ROIPosition свойство задает размерности систем координат изображений. Смотрите ROIPosition страница с описанием свойств для получения дополнительной информации.

Формат видео и размерности изображений

Следующий пример иллюстрирует, как формат видео влияет на размер возвращаемых систем координат изображения.

  1. Выберите формат видео - Используйте imaqhwinfo функция для просмотра списка видео форматов, поддерживаемых вашим устройством для сбора изображений. В этом примере показаны форматы видео, поддерживаемые Matrox® Захват системы координат Ориона. Форматы являются промышленными стандартами, такими как 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'
  2. Создайте объект сбора изображений - Этот пример создает объект входа видео для устройства сбора изображений Matrox с использованием формата видео по умолчанию, RS170. Чтобы запустить этот пример в своей системе, используйте imaqhwinfo функция, чтобы получить конструктор объектов для устройства сбора изображений и заменить этот синтаксис следующим кодом.

    vid = videoinput('matrox',1);
  3. Просмотр видео формата и свойств разрешения видео - тулбокс создает объект с форматом видео по умолчанию. Этот формат определяет разрешение видео.

    vid.VideoFormat
    
    ans =
    
       M_RS170
    
    vid.VideoResolution
    
    ans =
    
       [640 480]
  4. Принесите одну систему координат в рабочую область - Вызовите getsnapshot функция для ввода системы координат в рабочую область.

    frame = getsnapshot(vid);

    Размерности возвращенных данных отражают разрешение изображения и значение NumberOfBands свойство.

    vid.NumberOfBands
    ans =
    
       1
    
    size(frame)
    
    ans =
    
       480 640
  5. Запустите объект сбора изображений - Вызовите start функция для запуска объекта сбора изображений.

    start(vid)

    Объект выполняет немедленный триггер и начинает получение систем координат данных.

  6. Принесите несколько системы координат в рабочую область - Вызовите getdata функция для переноса нескольких систем координат изображений в рабочее пространство MATLAB.

    data = getdata(vid,10);

    The getdata функция вносит 10 системы координат данных в рабочую область. Обратите внимание, что возвращенные данные являются четырехмерным массивом: каждая система координат является трехмерным, а n-й система координат обозначается четвертой размерностью.

    size(data)
    
    ans =
    
       480 640 1 10
  7. Очистка - Всегда удаляйте объекты сбора изображений из памяти, и переменные, которые ссылаются на них, когда они вам больше не нужны.

    delete(vid)
    clear vid

Определение типа данных систем координат изображений

По умолчанию тулбокс возвращает системы координат изображения в типе данных, используемом устройством сбора изображений. Если нет типа данных MATLAB, соответствующего собственному типу данных объекта, getdata выбирает тип данных MATLAB, который сохраняет числовую точность. Для примера в формате RGB 555 каждый цветовой компонент выражается в 5 битах. getdata возвращает каждый цвет как uint8 значение.

Можно задать нужный тип данных getdata для использования в возвращенных данных. Для примера можно задать, что getdata возвращает системы координат изображения как массив double классов. Чтобы просмотреть список всех поддерживаемых типов данных, смотрите getdata страница с описанием.

Следующий пример иллюстрирует тип данных возвращенных данных изображения.

  1. Создайте объект сбора изображений - Этот пример создает объект входа видео для устройства сбора изображений Matrox. Чтобы запустить этот пример в своей системе, используйте imaqhwinfo функция, чтобы получить конструктор объектов для устройства сбора изображений и заменить этот синтаксис следующим кодом.

    vid = videoinput('matrox',1);
  2. Принесите одну систему координат в рабочую область - Вызовите getsnapshot функция для ввода системы координат в рабочую область.

    frame = getsnapshot(vid);
  3. Просмотр класса возвращенных данных - Использование class функция для определения типа данных, используемых для возвращенных данных изображения.

    class(frame)
    
    ans =
    
      uint8
  4. Очистка - Всегда удаляйте объекты сбора изображений из памяти, и переменные, которые ссылаются на них, когда они вам больше не нужны.

    delete(vid)
    clear vid

Просмотр полученных данных

После переноса данных в рабочее пространство MATLAB можно просмотреть их так же, как любое другое изображение в MATLAB.

Программное обеспечение Image Acquisition Toolbox™ включает функцию imaqmontage, который можно использовать, чтобы просмотреть все системы координат мультикадрового массива изображений в одном объекте изображения MATLAB. imaqmontage строит системы координат так, чтобы они примерно образовали квадрат. imaqmontage может быть полезным для визуального сравнения нескольких систем координат.

MATLAB включает две функции, image и imagesc, которые отображают изображения в окне рисунка. Обе функции создают объект изображения MATLAB для отображения системы координат. Можно использовать свойства объекта изображения для управления аспектами отображения. The imagesc функция автоматически масштабирует входные данные.

Программное обеспечение Image Processing Toolbox™ включает дополнительную стандартную программу отображения, называемую imshow. Как image и imagescэта функция создает объект изображения MATLAB. Однако imshow также автоматически устанавливает различные свойства объекта изображения для оптимизации отображения.