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

Можно использовать эти функции с помощью object™ VideoDevice System.

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

frame = step(obj);

получает одну систему координат от объекта VideoDevice System, obj.

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

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

release(obj)

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

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

L = isLocked(obj)

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

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

preview(obj)

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

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

closepreview(obj)

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

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

imaqhwinfo(obj)

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

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

  1. Создайте объект VideoDevice 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. Очистить объект VideoDevice System.

    clear vidobj;

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

Вы можете вернуть Kinect® для Windows® данные скелета с использованием объекта VideoDevice System на датчике Глубины Кинекта.

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

Этот пример использует устройство Kinect V1. Тулбокс также поддерживает V2 Kinect. Для получения информации о свойствах и метаданных устройств Kinect V2 установите пакет поддержки Image Acquisition Toolbox for Kinect For Windows Sensor и смотрите раздел «Получение изображений с V2 Kinect» в документации.

Чтобы создать Системный объект с помощью датчика Цвета:

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

Чтобы создать Системный объект с помощью датчика Глубины:

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

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

imageData = step(vidobjcolor);

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

Датчик Глубины Кинекта требует второго выходного аргумента, как показано здесь:

[depthData metadata] = step(vidobjdepth);

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

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

    IsPositionTracked
    IsSkeletonTracked
    JointDepthIndices
    JointImageIndices
    JointTrackingState
    JointWorldCoordinates
    PositionDepthIndices
    PositionImageIndices
    PositionWorldCoordinates
    SegmentationData
    SkeletonTrackingID

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

imshow(imageData)

Чтобы увидеть выходные метаданные:

metadata

Примечание

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

Примечание

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

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