Можно использовать эти функции с Системой VideoDevice object™.
Функция | Цель |
---|---|
step | Получите один кадр от устройства получения изображений.frame = step(obj); получает один кадр от Системного объекта VideoDevice, Обратите внимание на то, что в первый раз, когда вы вызываете шаг, он получает исключительное использование оборудования и начнет передавать данные потоком. |
release | Высвободите средства VideoDevice и позвольте изменения значения свойства.release(obj) системные ресурсы релизов (такие как память, дескрипторы файлов или аппаратные связи) Системного объекта, |
isLocked | Возвращает значение, которое указывает, заблокирован ли ресурс VideoDevice. (Используйте release , чтобы разблокировать.)L = isLocked(obj) возвращает логическое значение, |
preview | Активируйте живое окно просмотра изображения.preview(obj) создает Окно просмотра видео, которое отображает живые видеоданные для Системного объекта VideoDevice, |
closepreview | Закройте живое окно просмотра изображения.closepreview(obj) закрывает окно предпросмотра в реальном времени для Системного объекта VideoDevice, |
imaqhwinfo | Возвращает информацию об объекте.imaqhwinfo(obj) информация об отображениях о Системном объекте VideoDevice, |
Основной рабочий процесс для использования Системного объекта VideoDevice должен создать объект, предварительно просмотреть изображение, установить любые свойства, получить кадр и очистить объект, как показано здесь.
Создайте Системный объект VideoDevice, сопоставленный с адаптером Winvideo с ID устройства 1.
vidobj = imaq.VideoDevice('winvideo', 1);
Установите свойство уровня объектов, такое как ReturnedColorSpace
.
vidobj.ReturnedColorSpace = 'grayscale';
Обратите внимание на то, что синтаксисом для установки свойства уровня объектов является <object_name>.<property_name> = <property_value>
, где значение может быть вектором символов или числовым.
Установите специфичное для устройства свойство, такое как Brightness
.
vidobj.DeviceProperties.Brightness = 150;
Обратите внимание на то, что синтаксис для установки специфичного для устройства свойства должен перечислить имя объекта, объект DeviceProperties
и имя свойства с помощью записи через точку, и затем заставить его равняться значению свойства.
Предварительно просмотрите изображение.
preview(vidobj)
Получите один кадр с помощью функции step
.
frame = step(vidobj);
Отобразите полученный кадр.
imshow(frame)
Выпустите аппаратный ресурс.
release(vidobj);
Очистите Системный объект VideoDevice.
clear vidobj;
Можно возвратить Kinect® для скелетных данных Windows® с помощью Системного объекта VideoDevice на датчике Глубины Kinect.
Обычно в Image Acquisition Toolbox™, каждой камере или формирователе изображения имеет один ID устройства. Поскольку Kinect для камеры Windows имеет два отдельных датчика, Цветной датчик и датчик Глубины, тулбокс перечисляет два идентификатора устройства. Датчик Цвета Kinect является устройством 1, и датчик глубины Kinect является устройством 2.
Этот пример использует устройство Kinect V1. Тулбокс также поддерживает Kinect V2. Для получения информации о свойствах и метаданных устройств Kinect V2, установите Пакет Поддержки Image Acquisition Toolbox для Kinect Для Windows Sensor и смотрите раздел “Acquire Images with Kinect V2” в документации.
Создать Системный объект с помощью Цветного датчика:
vidobjcolor = imaq.VideoDevice('kinect', 1);
Создать Системный объект с помощью датчика Глубины:
vidobjdepth = imaq.VideoDevice('kinect', 2);
Датчик Глубины возвращает скелетные метаданные. Чтобы получить доступ к этому, необходимо добавить второй выходной аргумент в пользу функции step
. Цветной датчик работает одинаково как другие устройства. Так получение кадра с помощью датчика Цвета Kinect сделано как показано здесь:
imageData = step(vidobjcolor);
где imageData
является кадром, полученным, если vidobjcolor
является Системный объект, созданный с Устройством 1, датчик Цвета Kinect.
Датчик Глубины Kinect требует второго выходного аргумента, как показано здесь:
[depthData metadata] = step(vidobjdepth);
где depthData
является кадром, полученным, если vidobjdepth
является Системный объект, созданный с Устройством 2, датчик Глубины Kinect, и metadata
является скелетными метаданными, возвращенными с кадром.
Эти поля метаданных связаны с отслеживанием skeletons. Метаданные возвращены как структура, которая содержит эти параметры:
IsPositionTracked IsSkeletonTracked JointDepthIndices JointImageIndices JointTrackingState JointWorldCoordinates PositionDepthIndices PositionImageIndices PositionWorldCoordinates SegmentationData SkeletonTrackingID
Можно затем посмотреть на оба выходных параметров. Видеть фрейм изображения:
imshow(imageData)
Видеть метаданные вывод:
metadata
Kinect для датчика Windows Depth может занять несколько секунд, чтобы быть готов начать получать скелетные метаданные. В порядке видеть значения в метаданных вывод, необходимо получить несколько кадров с помощью ступенчатой функции неоднократно. Можно сделать это при помощи цикла for.
По умолчанию Системный объект возвращает данные как значения одинарной точности с областью значений 0.0 к 1,0. Значение представляет часть через динамический диапазон датчика. Датчик глубины Kinect имеет область значений от 0 до 8 192 мм.
Получение Изображения и Скелетных Данных Используя Kinect является примером, который показывает, как получить доступ к скелетным метаданным с помощью объекта videoinput
(не Системный объект VideoDevice), и это содержит информацию о свойствах, которые можно установить и на датчиках Цвета и на Глубины и описаниях всех полей метаданных. Имена свойства и значения эквивалентны, они были бы для Системного объекта, но необходимо будет затем установить свойства как показано на шаге 3 вышеупомянутого примера (в текущей теме) для использования с Системным объектом VideoDevice.