2012-05-25 2 views

답변

1

, 당신은 단순히 버퍼를 가리킬 수 있습니다 : 당신이 그것을

0

documentation를 조작하기 위해 그것을 복제 할 수 있도록 depthWrapper이 CONST가

//on setup: 
xn::DepthGenerator depthGenerator; 
xn::DepthMetaData depthMD; 
cv::Mat depthWrapper; 

//on update loop, 
//after context.WaitAnyUpdateAll(); 
depthGenerator.GetMetaData(depthMD); 
depthWrapper = cv::Mat(depthMD.YRes(), depthMD.XRes(), CV_16UC1, (void*) depthMD.Data()); 

하는 것으로 모든 것을 가지고 당신 필요한 것. 이보다 더 잘 설명 할 수는 없어요.

0

당신은 (떨어져 넥트의 상황, 깊이 생성 및 초기화에 대한 책을 읽은에서) 두 가지 작업을 수행해야합니다

  • 이 유형의 CV_16U (A)의 매트를 만듭니다. context.WaitOneUpdateAll (depth_map); 비. Mdepth_original = 매트 (h_depth, w_depth, CV_16U, (void *) depth_map.GetData()) c. 복사 할 때 매트가 복사됩니다. Mdepth_original.copyTo (depth);
  • 회색 또는 색으로지도의 깊이. 색상은 좋은 생각 (256^3 수준)처럼 보이지만 인간의 눈은 휘도 변화에 더 민감합니다. 256 레벨을 사용하더라도 [histogram equalization] [1] 기법을 사용하여 10,000 Kinect 레벨을 비교적 잘 매핑 할 수 있습니다. 가장 간단한 방법은, 비록 정밀도를 느슨하게하고 바로 수행 I (X, Y) = 255.0 * Z (X, Y)/z_range
  • 여기

방법 히스토그램 등화는 openNI2에서 구현된다 https://github.com/OpenNI/OpenNI2/blob/master/Samples/Common/OniSampleUtilities.h

관련 문제