exponenta event banner

Использование объекта VideyDevice System для получения кадров

Эти функции можно использовать с object™ VideyDevice System.

ФункцияЦель
  
stepПолучение одного кадра от устройства получения изображения.

frame = step(obj);

получает один кадр из объекта VideyDevice System, obj.

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

releaseОсвободите ресурсы VideyDevice и разрешите изменение значения свойства.

release(obj)

освобождает системные ресурсы (такие как память, дескрипторы файлов или аппаратные подключения) объекта System, objи позволяет изменять все его свойства и входные характеристики.

isLockedВозвращает значение, указывающее, заблокирован ли ресурс VideyDevice. (Использование release для разблокировки.)

L = isLocked(obj)

возвращает логическое значение, L, который указывает, заблокированы ли свойства для объекта System, obj. объект выполняет внутреннюю инициализацию в первый раз step выполняется функция. Эта инициализация блокирует свойства и входные спецификации. Как только это произойдет, isLocked функция возвращает значение true.

previewАктивируйте окно просмотра изображения в реальном времени.

preview(obj)

создает окно Video Preview, в котором отображаются видеоданные в реальном времени для объекта VideyDevice System, obj. В окне Video Preview отображаются видеоданные со 100% увеличением. Размер изображения для предварительного просмотра определяется значением объекта VideyDevice System ROI собственность. Если не указано, используется разрешение по умолчанию для устройства.

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

closepreview(obj)

закрывает окно просмотра в реальном времени для объекта VideyDevice System, obj.

imaqhwinfoВозвращает информацию об объекте.

imaqhwinfo(obj)

отображает информацию об объекте VideyDevice System, obj.

Основным рабочим процессом для использования объекта VideyDevice System является создание объекта, предварительный просмотр изображения, установка любых свойств, получение кадра и очистка объекта, как показано здесь.

  1. Создайте объект VideyDevice System, связанный с адаптером Winvideo с идентификатором устройства 1.

    vidobj = imaq.VideoDevice('winvideo', 1);
  2. Задать свойство уровня объекта, например ReturnedColorSpace.

    vidobj.ReturnedColorSpace = 'grayscale';

    Обратите внимание, что синтаксис для установки свойства уровня объекта: <object_name>.<property_name> = <property_value>, где значение может быть символьным вектором или числовым.

  3. Установка специфичного для устройства свойства, например Brightness.

    vidobj.DeviceProperties.Brightness = 150;

    Обратите внимание, что синтаксис для установки специфичного для устройства свойства состоит в том, чтобы перечислить имя объекта, DeviceProperties и имя свойства с помощью точечной нотации, а затем сделать его равным значению свойства.

  4. Предварительный просмотр изображения.

    preview(vidobj)
  5. Получение одного кадра с помощью step функция.

    frame = step(vidobj);
  6. Отображение полученного кадра.

    imshow(frame)
  7. Освободите аппаратный ресурс.

    release(vidobj);
  8. Очистите объект VideyDevice System.

    clear vidobj;

Kinect для метаданных Windows

Вы можете вернуть данные скелета Kinect ® для Windows ® с помощью объекта VideyDevice System на сенсоре Kinect Depth.

Обычно в Toolbox™ получения изображения каждая камера или устройство изображения имеет один идентификатор устройства. Поскольку камера Kinect для Windows имеет два отдельных датчика: датчик цвета и датчик глубины, на панели инструментов отображаются два идентификатора устройств. Сенсором Kinect Color является устройство 1, а датчиком глубины Kinect - устройство 2.

В этом примере используется устройство Kinect V1. Панель инструментов также поддерживает Kinect V2. Дополнительные сведения о свойствах и метаданных устройств Kinect V2 см. в разделе «Получение изображений с помощью V2 Kinect» документации.

Чтобы создать объект System с помощью датчика цвета, выполните следующие действия.

vidobjcolor = imaq.VideoDevice('kinect', 1);

Чтобы создать объект System с помощью датчика глубины, выполните следующие действия.

vidobjdepth = imaq.VideoDevice('kinect', 2);

Датчик глубины возвращает метаданные скелета. Чтобы получить доступ к этому, необходимо добавить второй выходной аргумент для step функция. Датчик цвета работает так же, как и другие устройства. Таким образом, захват кадра с помощью датчика Kinect Color выполняется следующим образом:

imageData = step(vidobjcolor);

где imageData является кадром, полученным, если vidobjcolor является системным объектом, созданным с помощью устройства 1, датчика Kinect Color.

Сенсору Kinect Depth требуется второй выходной аргумент, как показано ниже:

[depthData metadata] = step(vidobjdepth);

где depthData является кадром, полученным, если vidobjdepth - системный объект, созданный с помощью устройства 2, датчика глубины Kinect и metadata - метаданные скелета, возвращенные вместе с кадром.

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

    IsPositionTracked
    IsSkeletonTracked
    JointDepthIndices
    JointImageIndices
    JointTrackingState
    JointWorldCoordinates
    PositionDepthIndices
    PositionImageIndices
    PositionWorldCoordinates
    SegmentationData
    SkeletonTrackingID

Затем можно просмотреть оба выходных сигнала. Для просмотра кадра изображения:

imshow(imageData)

Для просмотра выходных метаданных:

metadata

Примечание

Для начала получения скелетных метаданных сенсору Kinect for Windows Depth может потребоваться несколько секунд. Чтобы увидеть значения в выходных метаданных, необходимо получить несколько кадров, используя пошаговую функцию повторно. Это можно сделать с помощью цикла for.

Примечание

По умолчанию объект System возвращает данные в виде значений одиночной точности в диапазоне от 0,0 до 1,0. Значение представляет дробь в динамическом диапазоне датчика. Датчик глубины Kinect имеет диапазон от 0 до 8192 мм.

Получение изображения и скелетных данных с помощью Kinect - это пример, показывающий, как получить доступ к каркасным метаданным с помощью videoinput объект (не объект VideyDevice System), и он содержит информацию о свойствах, которые можно задать как на датчиках цвета и глубины, так и описание всех полей метаданных. Имена и значения свойств совпадают с именами и значениями для объекта System, но затем необходимо задать свойства, как показано на шаге 3 приведенного выше примера (в текущем разделе), для использования с объектом VideyDevice System.