Kinect SDK 2:CoordinateMapper不返回有效结果

时间:2015-06-19 17:21:21

标签: kinect

据我所知,调用映射函数应该非常简单,但在调试以下代码时,ColorSpacePoint值通常为-1。#INF0000。我传递给映射方法的CameraSpacePoint很好。任何人都有任何想法为什么会这样?感谢。

    _sensor = KinectSensor::GetDefault()

    //Do some stuff

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

2 个答案:

答案 0 :(得分:0)

来自CoordinateMapperBasics示例项目的评论:

  

// sentinel值为-inf,-inf,表示没有深度像素对应于此颜色像素。

因此,对于具有相应深度像素的彩色像素,它将是一个有效值,但您应该执行检查以确保该值不是负无穷大。

答案 1 :(得分:0)

我发现了我的问题 - 这是一个非常具体的问题,但总有可能其他人可能遇到这个问题。

我使用Microsoft的Kinect Studio将性能传递给我的应用程序。这非常有效,但您必须选择要传递的数据流。默认情况下,“Nui Uncompressed Color”流不与其他流捆绑在一起。如果没有这个,对彩色帧映射器的所有调用都将无效。

只需将未压缩的颜色流添加到kinect数据即可解决此问题。但是,我经常需要停止/重新启动流以使映射器工作。不知道为什么会这样。