Работа с данными изображения в рабочем пространстве MATLAB

Понимание данных изображения

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

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

Следующие разделы описывают как тулбокс

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

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

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

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

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

Примечание

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

ROI и размеры изображения

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

Формат видео и размеры изображения

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

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

    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);

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

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

    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, чтобы отобразить систему координат. Можно использовать свойства объекта изображения, чтобы управлять аспектами отображения. imagesc функционируйте автоматически масштабирует входные данные.

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