2011-11-29 2 views
2

저는 Lucas Kanade 알고리즘을 사용하여 인체의 움직임을 추적하고 있습니다. 저는 Kinect의 RGB 및 Depth 스트림에 대해 작업하고 있습니다. 나는 몸에 몇 가지 포인트를두고 그 포인트를 추적해야한다. 마지막으로 xyz 좌표를 계산해야합니다.Kinect 깊이 스트림에서 원시 깊이 값을 얻는 방법은 무엇입니까?

제 질문은 깊이 스트림에서 특정 픽셀의 z 좌표를 얻는 방법입니다. 나는 kinect에 대한 Depth raw depth 값이 0-2047 범위에 있다는 것을 알고 있습니다. 그것에 수식을 적용하면 원하는 단위로 거리를 얻을 수 있습니다. 그러나이 원시 깊이를 얻는 방법? 누구든지 도와 줄 수 있습니까?

나는 kinect 및 opencv 용 libfreenect 드라이버를 사용하고 있습니다.

답변

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