我們可用從Kinect的官方文件知道,Kinect的視錐是這個樣子的。圖中A,B和小人的腳是處於同一平面的,那麼kincet獲取到的
世界座標中A,B的y軸座標是相等的?還是如在RGB圖中看到的一樣,A,B,一上一下,y軸座標不相等呢?
因此我抓獲了Kinect的RGB,depth圖像,對其後並轉換成世界座標,通過鼠標的點擊來查看A,B的座標。
最後結論如我所期待的一樣:A,B在同一平面,A,B點y軸座標相等。
這對小車室內定位和運作有重大意義。
獲取到的RGB圖像
獲取到的depth圖像
座標排列(x, y, z)
opencv 2.3後有了獲取世界座標方法,大大減少了工作量
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/user_guide/ug_highgui.html
capture.retrieve(depthMap,CV_CAP_OPENNI_POINT_CLOUD_MAP);//XYZ in meters (CV_32FC3),以米爲單位的XYZ點雲 (CV_32FC3)
獲取世界座標數據
cout<<"mouse location:"<<"("<<cvGet2D(Image,y,x).val[0]<<"," \
<<cvGet2D(Image,y,x).val[1]<<"," \
<<cvGet2D(Image,y,x).val[2]<<")"<<endl;