我用home来捕捉kinect:
capture.retrieve( depthMap, CV_CAP_OPENNI_DEPTH_MAP )
capture.retrieve( bgrImage, CV_CAP_OPENNI_BGR_IMAGE )
现在我不知道是否需要校准kinect以使深度像素值正确。 也就是说,如果我从图像RBG中取一个像素(u,v),从图像深度获取像素(u,v)的正确深度值?
depthMap.at<uchar>(u,v)
非常感谢任何帮助。 谢谢!
答案 0 :(得分:0)
您可以检查注册是否如此:
cout << "REGISTRATION " << capture.get( CV_CAP_PROP_OPENNI_REGISTRATION ) << endl;
如果不是,请将其设置为:
capture.set(CV_CAP_PROP_OPENNI_REGISTRATION,1);
或:
if(capture.get( CV_CAP_PROP_OPENNI_REGISTRATION ) == 0) capture.set(CV_CAP_PROP_OPENNI_REGISTRATION,1);