標籤: 機器視覺
設某點在座標系中的座標為pw
=[xw
,yw,
zw,]
t ,該點在座標系中的座標為pc
=[xc
,yc,
zc,]
t ,則有 p
c=[r
0t1]
pw(1)
其中r是正交旋轉矩陣: r=
⎡⎣⎢r
11r21r
31r12r
22r32r
13r23r
33⎤⎦⎥
(2)
t是平移矩陣: t=
[txt
ytz]
t(3)
確定r需要3個引數,確定t需要3個引數,共需6個引數,這6個引數稱為
攝像機的外部引數
。根據三角形相似原理,可得 ⎧
⎩⎨⎪⎪
⎪⎪xp
=fxc
zcyp
=fyc
zc(4)
寫成矩陣形式 zc
⎡⎣⎢x
pyp1
⎤⎦⎥=
⎡⎣⎢f
000f
0001
000⎤
⎦⎥⋅⎡
⎣⎢⎢⎢
xcyc
zc1⎤
⎦⎥⎥⎥
(5) s
x 表示xpix方向上單位mm的畫素數,單位是pix/mm sy
表示ypix方向上單位mm的畫素數,單位是pix/mm x0
,y0
表示投影平面中心
在中的座標,則有 {
xpix
=x0+
xp⋅s
xypi
x=y0
+yp⋅
sy(6)
寫成矩陣形式 ⎡⎣
⎢xpi
xypi
x1⎤⎦
⎥=⎡⎣
⎢sx0
00sy
0x0y
01⎤⎦
⎥⋅⎡⎣
⎢xpy
p1⎤⎦
⎥(7)
記 {f
x=f⋅
sxfy
=f⋅s
y(8)
分別表示焦距f在xpix和ypix方向上的等效焦距,單位是pix,結合(1)(5)(7)(8)式可得 zc
⎡⎣⎢x
pixy
pix1
⎤⎦⎥=
⎡⎣⎢f
x000
fy0x
0y01
000⎤
⎦⎥⋅[
r0t1
]⎡⎣⎢
⎢⎢⎢x
wywz
w1⎤⎦
⎥⎥⎥⎥
(9)
單目攝像機需要標定引數就是fx
,fy,
x0,y
0 這4個引數
由於針孔可以透過的光線太少,成像會不清楚,所以往往都會加上凸透鏡匯聚更多的光線。但是加上凸透鏡以後,會導致成像畸變,所以還需要校正透鏡畸變。透鏡的畸變主要分為兩類,一類是徑向畸變,一類是切向畸變
徑向畸變會產生「魚眼」現象。成像中心處徑向畸變為0,徑向畸變隨著與成像中心距離增大而增大,在影象邊緣處達到最大徑向畸變。常常用偶次冪的泰勒公式描述徑向畸變 {
xcer
rect
ed=x
(1+k
1r2+
k2r4
+k3r
6)yc
erre
cted
=y(1
+k1r
2+k2
r4+k
3r6)
(10)
切向畸變由透鏡和成像平面不平行引起。常用如下公式描述 {
xcer
rect
edyc
erre
cted
=x+[
2p1y
+p2(
r2+2
x2)]
=y+[
p1(r
2+2y
2)+2
p2x]
(11)
單目攝像機透鏡畸變校正需要確定的就是k1
,k2,
k3,p
1,p2
這5個引數,如果「魚眼」現象不明顯的話,常常使用k1
,k2 來校正徑向畸變
**:
攝像機標定學習筆記(9) 關於單應性
問題 兩條平行線可以相交於一點 在歐氏幾何空間,同一平面的兩條平行線不能相交,這是我們都熟悉的一種場景。然而,在透視空間裡面,兩條平行線可以相交,例如 火車軌道隨著我們的視線越來越窄,最後兩條平行線在無窮遠處交於一點。歐氏空間 或者笛卡爾空間 描述2d 3d幾何非常適合,但是這種方法卻不適合處理透視...
Ogre學習筆記2 光源攝像機和陰影
mcamera mscenemgr createcamera playercam 同樣你也可以通過名稱獲取攝像機的指標,通過呼叫getcamera 函式 下面 我們移動攝像機的位置並且規定攝像機往 看。mcamera setposition ogre vector3 0,300,500 mcamer...
攝像機標定學習筆記(10)關於畸變矯正
成像的過程實質上是幾個座標系的轉換。首先空間中的一點由 世界座標系 轉換到 攝像機座標系 然後再將其投影到成像平面 影象物理座標系 最後再將成像平面上的資料轉換到影象平面 影象畫素座標系 詳細的可以參考我之前的部落格 影象 攝像機標定 1 標定中的四個座標系 影象畫素座標系 uov座標系 下的無畸變...