Kinect 3D到2D偏差

时间:2012-11-18 17:04:13

标签: c++ kinect openkinect

我正在努力解释kinect深度数据。

为了获得与kinect的真实世界距离,我使用了以下公式:

  if(i<2047){
        depthToMeterTable[i] = i * -0.0030711016  + 3.3309495161; 
    }
    else{
        depthToMeterTable[i] = 0;
    }

这个公式给出了一个非常好的距离估计器。

然而,我确实从90°墙角可视化中获得了奇怪的输出。

以下图片是两个不同的信息。首先,紫色线代表墙,我应该看到它。一个90°的角落。红点代表从kinect看到的墙。如您所见,两个平面的角度现在更大。

http://img843.imageshack.us/img843/4061/kinectbias.jpg

你知道我在哪里可以纠正这种偏见,以及如何做到这一点?

感谢您阅读,

Al_th

1 个答案:

答案 0 :(得分:0)

我不熟悉那个转换公式(也不确定你的depthToMeterTable是如何填充的 - 那里使用了什么公式)。

但是libfreenect中有一个内置函数:freenect_camera_to_world

在添加效用函数之前,我使用了Matt Fischer's conversion functions(RawDepthToMeters和DepthToWorld)。

HTH