使用calibrateCamera後,我可以將投影矩陣從單眼設置中取出。立體聲整流後如何獲得相機的投影矩陣?
This stackoverflow answer explains how.
現在,我按照立體聲校準樣品,我想我做的立體聲整流(openCV - stereo rectify)後做同樣的兩個攝像頭。該方法給我Q,R1,R2,P1和P2矩陣。
void stereoRectify(InputArray cameraMatrix1, InputArray distCoeffs1, InputArray cameraMatrix2, InputArray distCoeffs2, Size imageSize, InputArray R, InputArray T, OutputArray R1, OutputArray R2, OutputArray P1, OutputArray P2, OutputArray Q, int flags=CALIB_ZERO_DISPARITY, double alpha=-1, Size newImageSize=Size(), Rect* validPixROI1=0, Rect* validPixROI2=0)
我想我必須給他們以某種方式結合在一起,但我不知道如何與這些輸出矩陣到內在和相機的外部參數。
在此先感謝!
編輯:我們假設我的相機沒有失真。我知道我可以使用initUndistorRectifyMap重新映射圖像並重新映射。但是,我只是有興趣使用投影矩陣編寫我自己的代碼,也就是說,如果它只是一個單一的攝像機校準,我會得到相機矩陣C以及旋轉和平移矢量,我將它們組合到投影矩陣由C * [R | t]表示。我想要做同樣的事情,但要糾正相機的位置。
我添加了一個編輯。我正在爲每臺相機尋找投影矩陣。我已經通過這個樣本。我想知道是否需要在整流前用投影矩陣(R1或R2取決於相機)乘以投影矩陣,這樣才能得到投影矩陣(它是組合的相機和外部矩陣)。 –
你認爲像我的更新#1? – Kornel
是的,我認爲那是我想要的。我現在正在測試一些代碼,並提供您的答案。我會回來的結果。謝謝! –