FREENECT_DEPTH_Rurable не имеет никакого эффекта с libfreenect

Я играю с Kinect (оригинальная версия Xbox) на драйвере libfreenect (кстати, я нахожусь на Ubuntu 12.04). Я клонировал самую последнюю версию из git и установил ее вручную, следуя инструкциям здесь: http://openkinect.org/wiki/Getting_Started#Ubuntu_Manual_Install

Я хотел бы получить доступ к зарегистрированным значениям глубины. Насколько я понимаю, Kinect откалиброван на заводе, и есть таблица соответствия, соответствующая пикселям глубины и соответствующим пикселям RGB.

Я могу нормально открыть Kinect и получить необработанные данные глубиной 11 бит. Это дает мне значения, варьирующиеся нелинейно от 730 до 1045 для расстояний от 1 до 7,5 метров.

Бег device->setDepthFormat(FREENECT_DEPTH_MM); делает выходные расстояния Kinect в мм, так что setDepthFormat вроде бы работает.

Бег device->setDepthFormat(FREENECT_DEPTH_REGISTERED); кажется, не имеет никакого эффекта, так как выводятся только необработанные значения глубины. Что мне не хватает?

5

Решение

И то и другое FREENECT_DEPTH_MM а также FREENECT_DEPTH_REGISTERED должен вернуть глубину в мм. Разница в том, что последний выравнивается, чтобы соответствовать видеоизображению RGB.

freenect_depth_format перечислить в libfreenect.h дает эти варианты:

FREENECT_DEPTH_11BIT = 0, /**< 11 bit depth information in one uint16_t/pixel */
FREENECT_DEPTH_10BIT = 1, /**< 10 bit depth information in one uint16_t/pixel */
FREENECT_DEPTH_11BIT_PACKED = 2, /**< 11 bit packed depth information */
FREENECT_DEPTH_10BIT_PACKED = 3, /**< 10 bit packed depth information */
FREENECT_DEPTH_REGISTERED = 4, /**< processed depth data in mm, aligned to 640x480 RGB */
FREENECT_DEPTH_MM = 5, /**< depth to each pixel in mm, but left unaligned to RGB image */
FREENECT_DEPTH_DUMMY = 2147483647, /**< Dummy value to force enum to be 32 bits wide */

Источник: страница libfrenect git выдает

Преобразование регистрации создает изображение глубины, как если бы камеры RGB и IR физически находились в одном месте и не были смещены на 2,5 см. Посмотрите исходный код, если вам интересно узнать подробности.

Источник: Исходный код libfreenect

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]