据我所知,调用映射函数应该非常简单,但在调试以下代码时,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);
答案 0 :(得分:0)
来自CoordinateMapperBasics示例项目的评论:
// sentinel值为-inf,-inf,表示没有深度像素对应于此颜色像素。
因此,对于具有相应深度像素的彩色像素,它将是一个有效值,但您应该执行检查以确保该值不是负无穷大。
答案 1 :(得分:0)
我发现了我的问题 - 这是一个非常具体的问题,但总有可能其他人可能遇到这个问题。
我使用Microsoft的Kinect Studio将性能传递给我的应用程序。这非常有效,但您必须选择要传递的数据流。默认情况下,“Nui Uncompressed Color”流不与其他流捆绑在一起。如果没有这个,对彩色帧映射器的所有调用都将无效。
只需将未压缩的颜色流添加到kinect数据即可解决此问题。但是,我经常需要停止/重新启动流以使映射器工作。不知道为什么会这样。