我正在使用Kinect v2和Kinect SDK v2。
我有几个关于坐标映射的问题:
如何将相机空间点(三维坐标系中的点)传送到深度值的深度空间?
当前的MapCameraPointToDepthSpace方法只能返回深度空间坐标。
但没有深度值,这种方法就没用了。
有没有人知道如何获得深度值?
如何获得内置的彩色相机?
只有GetDepthCameraIntrinsics方法才能获得深度相机内在。
但彩色相机怎么样?
如何使用深度相机内在?
似乎Kinect 2考虑了径向畸变。
但是如何使用这些内在函数来进行深度像素和3d点之间的转换?
是否有任何示例代码可以执行此操作?
答案 0 :(得分:1)
关于1 :重新映射的世界坐标的深度值与原始世界坐标的Z值相同。阅读深度缓冲区和世界坐标空间的描述:这两个值只是从点到Kinect平面的距离,以米为单位。现在,如果您希望在重新映射的坐标后面的深度框上看到对象的深度值,则必须在该位置读取深度图像缓冲区。
关于3 :当您必须手动构建CoordinateMapper对象时(即当您没有Kinect可用时),您可以使用相机的内在函数。当你获得与Kinect相关联的CoordinateMapper(使用Kinect对象的CoordinateMapper属性)时,它已经包含了Kinect的内在函数......这就是为什么你有GetDepthCameraIntrinsics
方法的原因返回特定的Kinect内在函数(它们可能因设备而异)。
答案 1 :(得分:0)
关于2:现在有办法让彩色相机内在化。你必须通过相机校准来评估它们。