我试图找出如何使用Kinect的RGB和深度相机检测物体及其在现实世界中的X,Y,Z位置。
我读到了这个问题:Kinect intrinsic parameters from field of view
要应用此功能,我需要Xv,Yv和Zw ..
到目前为止,我已成功检测到RGB相机中的物体(屏幕上的Xv,Yv位置),但我不确定如何从深度相机中获取Zw值&#34;正确&#34;。< / p>
这是我正在检测的物体的图片(右:仅RGB,左:RGB +深度叠加)
右侧窗口上的红色物体检测矩形非常精细,但在左侧窗口中,矩形略微偏离深度图像。这意味着我不能简单地从深度相机读取(Xv,Yv)的值并将其用作Zw值。
P.S。我在Ubuntu上使用freenect和opencv
请帮我弄清楚如何获得对象的Z位置。
答案 0 :(得分:1)
如果仔细查看HighGUI的文档,会有一个名为CV_CAP_PROP_OPENNI_REGISTRATION的标志,指示重新映射两个摄像机的值。
尝试
VideoCapture capture(CV_CAP_OPENNI);
..
capture.set(CV_CAP_PROP_OPENNI_REGISTRATION,0);