雙目視覺 1 座標系變換

2021-10-12 06:53:45 字數 2359 閱讀 3241

由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中可以直接呼叫reprojectimageto3d函式:

void

reprojectimageto3d

(inputarray disparity,

outputarray _3dimage,

inputarray q,

bool handlemissin**alues=false,

int ddepth=-1

)

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)

解釋一下,對於雙目相機,由左相機到右相機有乙個旋轉r

rr和乙個平移t

tt,opencv標定後的坐相機座標系中,左相機和右相機各自旋轉一半使得內參一致。這樣在rectify的時候就可以使用同一套內參引數。

rectify生成remap矩陣的過程如下(針對左攝像頭):

( u,

v)

(u, v)

(u,v

)是rectify後畫素座標系中的點

( x,

y,z)

t=r1.

inv(

)∗p1.

colr

ange

(0,3

).in

v()∗

(u,v

,1)t

(x, y, z)^t = r1.inv() * p1.colrange(0,3).inv() * (u, v, 1)^t

(x,y,z

)t=r

1.in

v()∗

p1.c

olra

nge(

0,3)

.inv

()∗(

u,v,

1)t 將畫素座標系中的點重對映到世界座標系中,現由旋轉矩陣的逆轉到以前的位置。

由distcoeffs1矩陣對(x,

y,z)

t(x, y, z)^t

(x,y,z

)t進行undistortion得到 (x′

,y′,

z′)t

(x', y', z')^t

(x′,y′

,z′)

t由cameramatrix1將(x′

,y′,

z′)t

(x', y', z')^t

(x′,y′

,z′)

t對映到畫素座標系中,得到(u′

,v′)

(u', v')

(u′,v′

)所以(u,

v)

(u,v)

(u,v

)對應(u′

,v′)

(u',v')

(u′,v′

), 這裡得到的u′u'

u′和v ′v'

v′都是float, 並非整畫素點,rectify後的值可以用bilinear插值得到。

雙目視覺 1

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

openGL系列 1 座標變換

理解物體座標系 世界座標系 相機座標系 裁剪座標系不難,關鍵是要知道對這些座標系的操作分別對應哪些函式。1 gltranslatef glscalef glrotatef 在模型 視角座標系內進行平移 縮放 旋轉 2 glulookat 對眼睛 相機 座標系進行變換 3 通用型 glmatrixmo...

「北京54 座標系」轉「西安80座標系」

北京54 座標系 轉 西安80座標系 詳細教程 北京54座標系和西安80座標系其實是一種橢球引數的轉換,作為這種轉換在同乙個橢球裡的轉換都是嚴密的,而在不同的橢球之間的轉換是不嚴密,因此不存在一套轉換引數可以全國通用的,在每個地方會不一樣,因為他們是兩個不同的橢球基準。那麼,兩個橢球間的座標轉換,一...