pcfromkinect

Облако точек от Kinect для Windows

Синтаксис

ptCloud = pcfromkinect(depthDevice,depthImage)
ptCloud = pcfromkinect(depthDevice,depthImage,colorImage)
ptCloud = pcfromkinect(depthDevice,depthImage,colorImage,alignment)

Описание

пример

ptCloud = pcfromkinect(depthDevice,depthImage) возвращает облако точек в изображение глубины Kinect®. Вход depthDevice может быть или объектом videoinput или объектом imaq.VideoDevice, сконфигурированным для Kinect (Версии 1 и 2) для Windows®.

Эта функция требует программного обеспечения Image Acquisition Toolbox™, которое поддерживает Kinect для Windows.

ptCloud = pcfromkinect(depthDevice,depthImage,colorImage) добавляет цвет к возвращенному облаку точек, заданному входом colorImage.

Kinect для системы Windows, разработанной для игр, производит depthImage и colorImage как зеркальные отображения сцены. Возвращенное облако точек исправляется, чтобы совпадать с фактической сценой.

ptCloud = pcfromkinect(depthDevice,depthImage,colorImage,alignment) дополнительно возвращает облако цветной точки с источником, заданным в центре камеры глубины.

Примеры

свернуть все

Постройте облако цветной точки от изображений Kinect. Этот пример требует программного обеспечения Image Acquisition Toolbox и камеры Kinect и связи с камерой.

Создайте Систему object™ для цветного устройства.

colorDevice = imaq.VideoDevice('kinect',1)

Создайте Системный объект для устройства глубины.

depthDevice = imaq.VideoDevice('kinect',2)

Инициализируйте камеру.

step(colorDevice);
step(depthDevice);

Загрузите один кадр от устройства.

colorImage = step(colorDevice);
depthImage = step(depthDevice);

Извлеките облако точек.

ptCloud = pcfromkinect(depthDevice,depthImage,colorImage);

Инициализируйте проигрыватель облака точек, чтобы визуализировать 3-D данные об облаке точек. Ось собирается соответственно визуализировать облако точек из Kinect.

player = pcplayer(ptCloud.XLimits,ptCloud.YLimits,ptCloud.ZLimits,...
	'VerticalAxis','y','VerticalAxisDir','down');

xlabel(player.Axes,'X (m)');
ylabel(player.Axes,'Y (m)');
zlabel(player.Axes,'Z (m)');

Получите и просмотрите 500 кадров живых данных об облаке точек Kinect.

for i = 1:500    
   colorImage = step(colorDevice);  
   depthImage = step(depthDevice);
 
   ptCloud = pcfromkinect(depthDevice,depthImage,colorImage);
 
   view(player,ptCloud);
end

Выпустите объекты.

release(colorDevice);
release(depthDevice);

Входные параметры

свернуть все

Введите видео объект, заданный или как объект videoinput или как объект imaq.VideoDevice, сконфигурированный для Kinect для Windows.

Изображение глубины, заданное как M-by-N пиксельная матрица. Оригинальные изображения, depthImage и colorImage, от Kinect являются зеркальными отображениями сцены.

Камера глубины Kinect имеет ограниченный диапазон. Ограниченный диапазон камеры глубины Kinect может заставить пиксельные значения в изображении глубины не иметь соответствующие 3-D координаты. Эти недостающие пиксельные значения установлены в NaN в свойстве Location возвращенного облака точек.

Типы данных: uint16

Цветное изображение, заданное как M-by-N-by-3 изображение истинного цвета RGB, которое возвращает Kinect. Оригинальные изображения, depthImage и colorImage, от Kinect являются зеркальными отображениями сцены.

Типы данных: uint8

Направление системы координат изображений, заданной как вектор символов 'colorCentric' или 'depthCentric'. Установите это значение к 'colorCentric', чтобы выровнять depthImage с colorImage. Установите alignment на 'depthCentric' выравнивать colorImage с depthImage.

Источник предназначенной для правой руки системы мировой координаты находится в центре камеры глубины. x - ось точек системы координат направо, y - ось указывает вниз, и z - точки оси от камеры.

Примечание

Для непротиворечивости через использование Computer Vision Toolbox™ систем координат система координат, заданная этой функцией, отличается от той, заданной Kinect Скелетные метаданные.

Выходные аргументы

свернуть все

Облако точек, возвращенное как объект pointCloud. Источник системы координат возвращенного облака точек находится в центре камеры глубины.

Введенный в R2015b