我在學習上述兩個部落格時發現,兩者對於雙目視覺深度值計算公式的推導過程有些細微的出入。
如圖1所示,其中xl與xr,分別為左右相機像平面上的成像點距主點的距離(x方向),可以理解為x1與xr,是在相機座標系測得的。
如圖2所示,其中xr與xt分別為左右相機像平面上的成像點距像平面左邊緣的距離,可以理解為xr與xt是在畫素座標系測得的。
問題:上述兩公式雖然計算視差值採用的座標系不同,但後續計算雙目深度值時的公式又是相同的,這如何理解?又有何不同之處?
解釋·首先,需要確認的是兩種公式的推導方式都是正確的,都能得到正確的視差值和深度值;
·其次,不同之處在於:當以相機座標系下xl與xr,計算視差時,焦距f的度量單位是mm;而以畫素座標系下xr與xt計算視差時,f的單位則為畫素(pixel),總之需要保證深度值的單位為mm(通常基線b是以mm為單位的)。
分析:由公式:
·當x1與xr,為相機座標系下測得,則他們應該以mm為單位,此時為保證深度的單位為mm,焦距f就需要轉換成以mm為度量的值;
·同樣,當以畫素座標系下xl與xr進行計算時,就需要將以畫素為度量的f代入計算;
得到深度z的值以後,再選擇如下兩公式之一計算xy座標,即可得出目標點的三維座標:
其中, u與 v為畫素座標系下的座標值,x與y為相機座標系下的座標值。
雙目測距測深度 科普 雙目測距原理
參考資料 1 深度相機原理揭秘 雙目立體視覺 2 雙目測距原理 3 相機標定原理及實現 1 雙目測距基本原理 如圖所示,p點是待測物體,camera r和camera l代表相機的光心位置,兩綠點為點p在兩個相機感光器上的成像點,f為相機焦距,b為兩相機中心距,z為所求深度資訊,兩綠點間距為d。d ...
opencv雙目測距實現
開篇之前,首先要感謝maxwellsdemon和wobject,沒有和你們的討論,也就沒有此篇的成文。說到雙攝像頭測距,首先要複習一下測距原理,把learning opencv翻到416和418頁,可以看到下面兩幅圖 圖1.雙攝像頭模型俯檢視 圖2,雙攝像頭模型立體檢視 圖1解釋了雙攝像頭測距的原理...
雙目測距的實現
說到雙攝像頭測距,首先要複習一下測距原理,把learning opencv翻到416和418頁,可以看到下面兩幅圖 圖1.雙攝像頭模型俯檢視 圖2,雙攝像頭模型立體檢視 圖1解釋了雙攝像頭測距的原理,書中z的公式如下 在opencv中,f的量綱是畫素點,tx的量綱由定標棋盤格的實際尺寸和使用者輸入值...