Абсолютные координаты Kinect Joint

Я использую Kinect для Windows SDK (v1.8)
Я успешно читаю движение из Kinect, но теперь мне интересно, как получить абсолютную позицию сустава, который я отслеживаю (правая рука)

Я использую следующую функцию, NuiTransformSkeletonToDepthImage, но значения варьируются от 100-200 в координатах x и y.

Любые предложения о том, как преобразовать возвращенные координаты в координаты экрана?
У меня есть чувство, что я упускаю что-то действительно очевидное, хотя …

заранее спасибо

1

Решение

Хорошо, после долгого осмотра, проб и ошибок; Я нашел решение.

Когда вы вызываете NuiTransformSkeletonToDepthImage (); Вы можете указать разрешение Kinect, используя перечисление NUI_IMAGE_RESOLUTION. Я считаю, что ценности; 80×60, 320×240, 640×480, 1280×960

В зависимости от того, какое разрешение вы решите использовать; вам нужно разделить возвращенные координаты x и y на соответствующее разрешение. Затем умножьте их на размер вашего окна, и у вас должны быть координаты в вашем окне.

Я считаю, что вы также можете указать разрешение при создании экземпляра интерфейса датчика Kinect.

Пример, как мое объяснение не слишком кратко:

float x, y
const Vector4 fromPos = skeleton.SkeletonPositions[NUI_SKELETON_POSITION_HAND_RIGHT];
NuiTransformSkeletonToDepthImage(fromPos, &x, &y, NUI_IMAGE_RESOLUTION_320x240);
x = x * ((float)WINDOW_WIDTH / 320.0f);
y = y * ((float)WINDOW_HEIGHT / 240.0f);

Любые вопросы; не стейсняйся спросить.

0

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

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

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