2016-09-27 81 views
1

我想使用相機外部矩陣和gluLookAt函數在圖像上顯示模型。gluLookAt相機外在矩陣

該模型被翻譯爲原點,即模型的質心位於原點。 (模型的座標基於右側)

並使用cvFindExtrinsicCameraParams2函數,我得到相機外部矩陣E = [R | t]。

對於這種情況,我想使用gluLookat顯示cad模型。

它有三個參數;相機位置,相機眼睛,相機向上。

我必須輸入什麼值?

我猜,相機位置是t:外在矩陣的翻譯值。另外,如果旋轉和平移爲零,則相機通過(0,0,1)向量看到模型。因此,如果存在旋轉,相機眼睛應該是R *(0,1,0)。

最後照相機起來,它應該是(0,-1,0)如果相機看起來在前面模型。然後新的相機向上矢量是R *(0,-1,0)。

但它並沒有給我一個正確的結果。有什麼問題?我的錯誤是什麼?

回答

0

眼睛是相機正在看的空間中的一個點。你目前計算的是它看起來的方向。你可以,例如,使用

eye = t + R * [0,0,1]; 

我不知道爲什麼你嘗試重新使用glLookAt相機矩陣,因爲其結果應該是準確,你已經擁有的外部照相機矩陣。

+1

我用opencv獲得了外部矩陣。然後我想用opengl函數來顯示它(用於陰影)。我試過t + r *(0,0,1),但模型不顯示。我不知道爲什麼.. T_T 因爲它顯示模型,當我設置相機(0,0,-z),眼睛(0,0,0),向上(0,-1,0),那麼它顯示正確的結果,所以我認爲代碼是正確的,但值沒有被正確選擇... – Wooni