如何从Kinect深度流获取原始深度值?

时间:2011-11-29 15:55:19

标签: tracking kinect

我正在使用Lucas Kanade算法跟踪人体的运动。我正在研究Kinect的RGB和深度流。我必须在身体上放置一些点,并跟踪这些点。最后他们的xyz坐标必须计算。

我的问题是,如何从深度流中获取特定像素的z坐标?我知道kinect的深度原始深度值在0-2047范围内。在它上面应用公式可以得到我想要的任何单位的距离。但是如何获得这个原始深度?有人可以帮忙吗?

我正在为kinect和opencv使用libfreenect驱动程序。

1 个答案:

答案 0 :(得分:3)

使用OpenCV 2.3.x,您可以检索所需的所有信息。您需要使用OpenNI从源代码编译它才能工作。看看这段代码:

VideoCapture capture(CV_CAP_OPENNI); 
for(;;)
{
    Mat depthMap;
    Mat rgbImage

    capture.grab();

    capture.retrieve( depthMap, OPENNI_DEPTH_MAP );



    if( waitKey( 30 ) >= 0 )
        break;
}

是的,这很容易。 depthMap将在每个索引中存储深度。该深度表示使用IR测量深度时从传感器到表面的距离。更多详情请见:http://opencv.itseez.com/doc/user_guide/ug_highgui.html