2015-02-23 108 views
6

通常投影矩陣的定義是投影點從世界座標到圖像/像素座標的3x4矩陣。投影矩陣可被分成:OpenCV矩陣的精確定義StereoRectify

  • ķ:3×4相機矩陣K與固有參數
  • Ť:一個4×4變換矩陣與外部參數

的投影矩陣然後是P = K * T

什麼是下面輸入的OpenCV的stereoRectify的明確定義:

  • cameraMatrix1 - 第一臺相機矩陣(我假設它是投影矩陣的稟ķ部分,對嗎?)
  • R - 第一臺和第二臺相機座標系之間的旋轉矩陣。 ('between'是什麼意思?它是從cam1到cam2還是從cam2到cam1的旋轉?)
  • T - 攝像機座標系之間的平移矢量。 (同上,是否是從cam1 - > cam2或cam2-> cam1的翻譯)
  • R1 - 爲第一臺攝像機輸出3x3整流變換(旋轉矩陣)。 (這是整流後的旋轉,所以投影矩陣的新的非本徵部分變爲T1new = R1 * T1old?)
  • P1 - 在第一臺攝像機的新(校正後)座標系中輸出3x4投影矩陣。 (什麼意思是'在新座標系中的投影矩陣'?看起來這個投影矩陣依賴於旋轉矩陣R1來投影從世界座標到圖像/像素座標的點,所以從上面的定義來看,它既不是「投影矩陣」或「相機矩陣」,但某種兩者的混合物的)

回答

1
  1. CAMERAMATRIX1 - 是如OpenCV的計算由stereocalibrate()函數的固有K矩陣。你做對了!!!
  2. R是凸輪2框架w.r.t凸輪1框架的旋轉矩陣。相似地,T是cam2原點的平移向量w.r.t cam1原點。
  3. 如果你會看在O'Riley書 「opencv學習」 pg.-434,你就會明白什麼R1(/ 器R1)和R2(/ 器Rr)是。

    器R1 = [Rrect] [RL]; Rr = [Rect] [rr];

    讓相機的圖片平面爲plane1和plane2。當立體聲整流尚未完成時,plane1和plane2根本不會平行。此外,epilines不會與立體相機基線平行。所以,Rl所做的是將左圖像平面轉換爲與右圖像平面平行(由Rr轉換),而且兩個圖像上的epilines現在是平行的。
  4. P1 and P2是立體整形後的新投影矩陣。請記住,相機矩陣(K)將3d空間中的一個點轉換到2d圖像平面上。但是P1和P2在整形的2D圖像平面上轉換3d空間中的點。
    如果你已經校準的立體相機鑽機前,觀察P1和K1值,你會發現,他們是非常similiar如果你的音響裝備幾乎是整流配置(當然人以內範圍)