如何使用kinect sdk v2将深度像素传输到相机空间

时间:2015-03-23 07:40:39

标签: kinect kinect-sdk

我正在使用Kinect v2和Kinect SDK v2。

我有几个关于坐标映射的问题:

  1. 如何将相机空间点(三维坐标系中的点)传送到深度值的深度空间?

    当前的MapCameraPointToDepthSpace方法只能返回深度空间坐标。

    但没有深度值,这种方法就没用了。

    有没有人知道如何获得深度值?

  2. 如何获得内置的彩色相机?

    只有GetDepthCameraIntrinsics方法才能获得深度相机内在。

    但彩色相机怎么样?

  3. 如何使用深度相机内在?

    似乎Kinect 2考虑了径向畸变。

    但是如何使用这些内在函数来进行深度像素和3d点之间的转换?

    是否有任何示例代码可以执行此操作?

2 个答案:

答案 0 :(得分:1)

关于1 :重新映射的世界坐标的深度值与原始世界坐标的Z值相同。阅读深度缓冲区和世界坐标空间的描述:这两个值只是从点到Kinect平面的距离,以米为单位。现在,如果您希望在重新映射的坐标后面的深度框上看到对象的深度值,则必须在该位置读取深度图像缓冲区。

关于3 :当您必须手动构建CoordinateMapper对象时(即当您没有Kinect可用时),您可以使用相机的内在函数。当你获得与Kinect相关联的CoordinateMapper(使用Kinect对象的CoordinateMapper属性)时,它已经包含了Kinect的内在函数......这就是为什么你有GetDepthCameraIntrinsics方法的原因返回特定的Kinect内在函数(它们可能因设备而异)。

答案 1 :(得分:0)

关于2:现在有办法让彩色相机内在化。你必须通过相机校准来评估它们。