機器視覺學習筆記(4) 單目攝像機標定引數說明

2021-08-08 08:25:23 字數 2325 閱讀 4814

標籤: 機器視覺

設某點在座標系中的座標為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座標系 下的無畸變...