2015-06-19 1 views
0

Я понимаю, что вызов функции сопоставления должен быть очень простым, но при отладке следующего кода значения ColorSpacePoint часто равны -1. # INF0000. CameraSpacePoint, который я передаю методу сопоставления, в порядке. У кого-нибудь есть идеи, почему это так? Благодарю.Kinect SDK 2: CoordinateMapper не возвращает действительные результаты

_sensor = KinectSensor::GetDefault() 

    //Do some stuff 

    CameraSpacePoint pos3d = body->Joints->Lookup(t->JointType()).Position; // This works. 
    ColorSpacePoint pos = _sensor->CoordinateMapper->MapCameraPointToColorSpace(pos3d); 

ответ

0

Из замечаний CoordinateMapperBasics Образец проекта:

// Значение сторожевого является -inf, -inf, что означает, что никакой глубины пикселя не соответствует этому цвета пикселя.

Таким образом, это будет действительное значение для цветных пикселей с соответствующим пикселем глубины, но вы должны выполнить проверку, чтобы убедиться, что значение не является отрицательной бесконечностью.

0

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

Я использую Microsoft Kinect Studio для передачи производительности моим приложениям. Это прекрасно работает, однако вы должны выбрать, какие потоки данных вы хотите передать. По умолчанию поток Nui Uncompressed Color не поставляется вместе с остальными. Без этого все вызовы в mapframe mapper будут недействительными.

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

 Смежные вопросы

  • Нет связанных вопросов^_^