雙目視覺下空間座標計算 opencv 個人理解

2021-08-20 17:15:22 字數 2050 閱讀 6364

簡單的理解思路:(世界座標系固定到左目)

空間中一點p,在左目畫素座標(u1,v1),轉成mm為單位的座標(x1,y1),在左目座標系下建立過(x,y)的直線linel;

同樣的思路,空間中同一點p,

在右目座標系下建立,過(x2,y2)的直線liner,liner上的點要經過(r,t)變換到左目座標系下;

求直線linel與liner的交點 就是p的座標。

攝像機矩陣由內參矩陣和外參矩陣組成,對攝像機矩陣進行qr分解可以得到內參矩陣和外參矩陣。

內參包括焦距、主點、傾斜係數、畸變係數

其中,fx,fy為焦距,一般情況下,二者相等,x0、y0為主點座標(相對於成像平面),s為座標軸傾斜引數,理想情況下為0

外參包括旋轉矩陣r3×3、平移向量t3×1,它們共同描述了如何把點從世界座標系轉換到攝像機座標系,旋轉矩陣描述了世界座標系的座標軸相對於攝像機座標軸的方向,平移向量描述了在攝像機座標系下空間原點的位置。

標定雙目後,首先要根據其畸變係數來校正原圖,

可以參考

校正完成後就可以進行座標計算了,分兩種

首先將世界座標系——>攝像機座標系

已知某點在世界座標系中的座標為(xw, yw, zw),由旋轉和平移矩陣可得攝像機座標系和世界座標系的關係為

然後將攝像機座標系——>像面座標系

其中[u

v1]t

為點在影象座標系中的座標,[

xcyc

zc  

1]t為點在攝像機座標系中的座標,k為攝像機內引數矩陣。

這樣最終可以得到:

光軸會聚模型:

對於兩相機分別有:

公式56,左邊z應分別為zc1,zc2

其中,

這樣可以把(5)(6)寫成

公式8左邊z應為zc1

公式9左邊z應為zc2

將(8)(9)整理可以得到

注意zc1不等於zc2.。 通過(8)消去zc1得到(10)中的前兩個等式;通過(9)消去zc2得到(10)中的後兩個等式;

採用最小二乘法求解x,y,z,在opencv中可以用solve(a,b,xyz,decomp_svd)求解(10)

a為超定方程的等式左邊的係數矩陣,b為等式右邊的矩陣。因為是超定方程只能求出最小二乘解。

matlab或者opencv標定完都是在左相機上建立世界座標系,於是上面**對應的改為:

//左相機旋轉矩陣  

float leftrotation[3][3] = ; 

//左相機平移向量

float lefttranslation[1][3] = ;

雙目視覺簡介

雙目視覺廣泛應用在機械人導航,精密工業測量 物體識別 虛擬實境 場景重建,勘測領域。什麼是雙目視覺?雙目視覺是模擬人類視覺原理,使用計算機被動感知距離的方法。從兩個或者多個點觀察乙個物體,獲取在不同視角下的影象,根據影象之間畫素的匹配關係,通過三角測量原理計算出畫素之間的偏移來獲取物體的三維資訊。得...

雙目視覺 1

雙目視覺廣泛應用在機械人導航,精密工業測量 物體識別 虛擬實境 場景重建,勘測領域。什麼是雙目視覺?雙目視覺是模擬人類視覺原理,使用計算機被動感知距離的方法。從兩個或者多個點觀察乙個物體,獲取在不同視角下的影象,根據影象之間畫素的匹配關係,通過三角測量原理計算出畫素之間的偏移來獲取物體的三維資訊。得...

雙目視覺 1 座標系變換

由q矩陣轉換到相機座標系 q u vd1 xy zw q begin u v d 1 end begin x y z w end q uvd1 xyzw 最終將到的向量 x,y,z,w t x,y,z,w t x,y,z w t 用w ww歸一化就得到三維的點。opecv中可以直接呼叫reproje...