前提
1、使用BM或者SGBM算法計算得到了雙目圖像的合適左右視差圖;
2、使用立體校正函數stereoRectify()
計算得到了4*4重投影矩陣Q;
方法1-perspectiveTransform()
1、透視變換這裏可以用於計算一系列特徵點的三維重投影座標值,原理如圖:
2、perspectiveTransform()函數原型:
其中注意:mat這裏應該等效重投影矩陣Q;
3、使用方法:
- 首先計算左相機圖像中的特徵點位置(像素座標),找到對應視差圖中點的位置,得到(x,y,d)值;
- 調用函數perspectiveTransform()計算三維重投影的空間座標;
方法2-reprojectimageto3d()
1、函數原型:
2、原理與透視變換相同,不過操作的對象是整個視差圖所有點;
3、使用:
- 首先得到視差圖與4*4重投影矩陣Q;
- 然後調用reprojectimageto3d()得到整幅圖像的三維座標信息;
- 最後根據左相機圖像中特徵點的座標信息,只提取對應的三維座標信息;
PS
以上內容是我猜想的,可不可行還沒驗證,只可信一半~~(有問題麻煩幫忙指正一下呀)
參考
1、《Learning OpenCV3》P657