2011-11-29 122 views
2

我正在使用Lucas Kanade算法跟蹤人體的運動。我正在研究Kinect的RGB和Depth流。我必須在身體上放置一些點,並跟蹤這些點。最後他們的xyz座標必須被計算。如何從Kinect深度流中獲取原始深度值?

我的問題是,如何從深度流中獲取特定像素的z座標?我知道深度的kinect深度值在0-2047範圍內。並且在其上應用公式可以使我得到任何我想要的單位的距離。但如何獲得這個原始深度?誰能幫忙?

我正在使用libfreenect driver for kinect和opencv。

回答

2

使用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

+0

伊恩,這是非常好的信息!一直在尋找它幾個小時。 – Jacksonkr