從kinect獲取世界座標

我們可用從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;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章