Kinect2原始深度到距离(米)

Kinect2原始深度到距离(米),kinect,Kinect,如何将Kinect2原始深度数据转换为以米为单位的距离。原始深度数据由Windows Kinect2 SDK获取。都是积分数据。 要点:这是kinect2而不是kinect1。 我已经得到了Kinect1的方程式,但不匹配。 所以任何人都可以帮助我。 Kinect1的方程式: if (depthValue < 2047) { depthM = 1.0 / (depthValue*-0.0030711016 + 3.3309495161); } if(深度值

如何将Kinect2原始深度数据转换为以米为单位的距离。原始深度数据由Windows Kinect2 SDK获取。都是积分数据。 要点:这是kinect2而不是kinect1。 我已经得到了Kinect1的方程式,但不匹配。 所以任何人都可以帮助我。 Kinect1的方程式:

if (depthValue < 2047) 
{
  depthM = 1.0 / (depthValue*-0.0030711016 + 3.3309495161);
}
if(深度值<2047)
{
深度=1.0/(深度值*-0.0030711016+3.3309495161);
}
指示灯指示:

DepthFrame类表示一个帧,其中每个像素表示该像素看到的最近对象的距离。此帧的数据存储为16位无符号整数,其中每个值表示以毫米为单位的距离。最大深度距离为8米,但可靠性在4.5米左右开始下降。在BodyFrame类不够的情况下,开发人员可以使用深度框架构建自定义跟踪算法

他在博客中还提到,这些数值以米为单位。因此,您可以从C#中的中检索它(部分从中提取):

public覆盖无效更新(DepthFrame)
{
ushort minDepth=帧深度最小可靠距离;
ushort maxDepth=frame.DepthMaxReliableDistance;
//..
宽度=frame.FrameDescription.Width;
高度=frame.FrameDescription.Height;
公共ushort[]部门数据;
//...
frame.CopyFrameDataToArray(深度数据);
//现在Depthdata包含深度
}
最小和最大深度由函数和给出,也以毫米为单位