在理解相機坐標系時,我們一定會接觸相機的外參矩陣R,它將世界坐標系下的坐標轉換到相機坐標系下:
P
c
=
R
?
P
w
+
t
P_c=R*P_w+t
Pc?=R?Pw?+t
這實際上是兩個坐標系之間的變換,我們知道
R
R
R矩陣是一個正交矩陣,所以它的3個行(列)向量是3維向量空間的一組標準正交基,而一組標準正交基可以作為一個坐標系的三個基向量,那么我們的
R
R
R矩陣如何和兩個坐標系的基向量聯系起來呢?
我們先畫出兩個坐標系
X
w
Y
w
Z
w
X_wY_wZ_w
Xw?Yw?Zw?和
X
c
Y
c
Z
c
X_cY_cZ_c
Xc?Yc?Zc?:

我們要討論的是如何把某一點
P
P
P 在世界坐標系上的坐標轉換成相機坐標系上的坐標,
暫且不考慮兩個坐標系之間的平移,于是將相機坐標系的原點移動到世界坐標系的原點,像這樣:

我們可以標出兩個坐標系的基向量組
e
w
(
e
?
w
x
,
e
?
w
y
,
e
?
w
z
)
e_w(\vec{e}_{wx},\vec{e}_{wy},\vec{e}_{wz})
ew?(e
wx?,e
wy?,e
wz?)和
e
c
(
e
?
c
x
,
e
?
c
y
,
e
?
c
z
)
e_c(\vec{e}_{cx},\vec{e}_{cy},\vec{e}_{cz})
ec?(e
cx?,e
cy?,e
cz?),它們都在世界坐標系下,

接下來,再討論如何把世界坐標系上的一點
P
(
X
w
,
Y
w
,
Z
w
)
P(X_w,Y_w,Z_w)
P(Xw?,Yw?,Zw?)轉換到相機坐標系下
P
(
X
w
,
Y
w
,
Z
w
)
→
P
(
X
c
,
Y
w
,
Z
w
)
P(X_w,Y_w,Z_w)→P(X_c,Y_w,Z_w)
P(Xw?,Yw?,Zw?)→P(Xc?,Yw?,Zw?)
在世界坐標系下,基向量組
e
w
(
e
?
w
x
,
e
?
w
y
,
e
?
w
z
)
e_w(\vec{e}_{wx},\vec{e}_{wy},\vec{e}_{wz})
ew?(e
wx?,e
wy?,e
wz?)為單位陣,也就是
其中 e ? w x = ( 1 , 0 , 0 ) T \vec{e}_{wx}=(1,0,0)^T e wx?=(1,0,0)T, e ? w y = ( 0 , 1 , 0 ) T \vec{e}_{wy}=(0,1,0)^T e wy?=(0,1,0)T, e ? w z = ( 0 , 0 , 1 ) T \vec{e}_{wz}=(0,0,1)^T e wz?=(0,0,1)T,
我們知道 P P P在世界坐標系下的坐標實際上是以上三組基向量的線性組合,即 P w = X w ? e ? w x + Y w ? e ? w x + Z w ? e ? w x P_w=X_w*\vec{e}_{wx}+Y_w*\vec{e}_{wx}+Z_w*\vec{e}_{wx} Pw?=Xw??e wx?+Yw??e wx?+Zw??e wx?
這便是坐標的基向量表示法了,
那么我們把 P P P點的坐標變換到基向量組 e c ( e ? c x , e ? c y , e ? c z ) e_c(\vec{e}_{cx},\vec{e}_{cy},\vec{e}_{cz}) ec?(e cx?,e cy?,e cz?)下便得到了相機坐標系下的變換,換句話說,我們要計算 P P P點在基向量組 e c ( e ? c x , e ? c y , e ? c z ) e_c(\vec{e}_{cx},\vec{e}_{cy},\vec{e}_{cz}) ec?(e cx?,e cy?,e cz?)下的坐標 P c = X c ? e ? c x + Y c ? e ? c x + Z c ? e ? c x P_c=X_c*\vec{e}_{cx}+Y_c*\vec{e}_{cx}+Z_c*\vec{e}_{cx} Pc?=Xc??e cx?+Yc??e cx?+Zc??e cx?,
從旋轉矩陣的角度來說,計算公式是:
P
c
=
R
P
w
P_c=RP_w
Pc?=RPw?
讓我們先暫時忘掉 P P P,我們想一想基向量組 e c ( e ? c x , e ? c y , e ? c z ) e_c(\vec{e}_{cx},\vec{e}_{cy},\vec{e}_{cz}) ec?(e cx?,e cy?,e cz?)通過 R R R矩陣變換到相機坐標系下是什么樣的呢?
答案顯而易見,是單位陣 E E E,
也就是說通過左乘旋轉矩陣
R
R
R,我們可以把基向量組
e
c
(
e
?
c
x
,
e
?
c
y
,
e
?
c
z
)
e_c(\vec{e}_{cx},\vec{e}_{cy},\vec{e}_{cz})
ec?(e
cx?,e
cy?,e
cz?)變成單位陣
E
E
E,表達如下:
R
(
e
?
c
x
,
e
?
c
y
,
e
?
c
z
)
=
E
R(\vec{e}_{cx},\vec{e}_{cy},\vec{e}_{cz})=E
R(e
cx?,e
cy?,e
cz?)=E
因此我們知道
(
e
?
c
x
,
e
?
c
y
,
e
?
c
z
)
=
R
?
1
=
R
T
(\vec{e}_{cx},\vec{e}_{cy},\vec{e}_{cz})=R^{-1}=R^T
(e
cx?,e
cy?,e
cz?)=R?1=RT
這就是我們的旋轉矩陣 R R R在基變換角度下的理解, R R R的逆矩陣(或轉置矩陣)的三個列向量,便是相機坐標系的三個基向量在世界坐標系下的坐標,
CSDN認證博客專家
立體視覺
工學博士
博客專家
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/240095.html
標籤:其他
上一篇:作業273:參照原型調整首頁
