視差圖(Disparity)三維重投影得到特徵點的三維空間座標的2種方法

前提

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

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