OpenCV包含很多來自立體相機的3D重建支持。在我的情況下,我有兩個攝像頭,我想知道某個點的三維座標。從兩個2D點重建3D點?
我有:點的
- 像素座標上的兩個圖像
- 已知的內在和外在相機參數應用
我想: 座標在3D
這一點OpenCV包含很多來自立體相機的3D重建支持。在我的情況下,我有兩個攝像頭,我想知道某個點的三維座標。從兩個2D點重建3D點?
我有:點的
我想: 座標在3D
這一點我不知道opencv是否有這樣的構造。但是我知道你可以使用正弦角的法則來建立與攝像機水平平行的線性距離,使用點 - >攝像機 - >其他攝像機的內角作爲參考點。
然後,一旦你得到了距離,你可以通過使用相同的結構來計算垂直定位:其中角度從死點計數到距離點上方或下方多遠,參考任一相機,距離在第一步中找到的對象,並且您可以使用90度作爲您的虛擬點(對象與對象相對的水平方向)與對象之間的角度。
我已經在這個其他post回答了同樣的問題。
如果你有外在參數,那麼你有相機的姿勢。使用相機姿勢和2D點,可以投影3D點(如果2D點和外部因子正確,則對於每個相機應該具有相同的結果)。你只需要將姿勢轉換成單應性。我在鏈接的帖子中解釋它。
祝你好運!
如果您對兩個視圖的三角點沒有經驗,那麼您應該選擇Hartley and Zisserman's book的書。在本書中,描述了一種線性三角測量方法,該方法非常易於實現2D點對應,攝像機姿態和攝像機標定。
該方法的示例代碼給出爲here。它基於上面提到的書。
儘管如此,還是有非常重要的條件必須得到滿足。首先,相對於極線約束x*E*x' = 0
,測量點對應關係必須是正確的。其次,射線之間的角度應該大於幾度,例如2度。
就我的理解,你的答案處理的是與此不同的情況。 – Mehdi