相機成像的過程實際是將真實的三維空間中的三維點對映到成像平面(二維空間)過程,可以簡單的使用小孔成像模型來描述該過程,以了解成像過程中三維空間到二位影象空間的變換過程。
本文包含兩部分內容,首先介紹小孔成像模型的各種幾何關係;接著描述了成像過程中的四種座標系(畫素座標,影象座標,相機座標,世界座標)的變換關係。
相機可以抽象為最簡單的形式:乙個小孔和乙個成像平面,小孔位於成像平面和真實的三維場景之間,任何來自真實世界的光只有通過小孔才能到達成像平面。因此,在成像平面和通過小孔看到的真實三維場景存在著一種對應關係,也就是影象中的二維像點和真實三維世界的三維點存在某種變換關係。找到了這種變換關係,就可以利用影象中的二維點資訊來恢復場景的三維資訊。
下圖是小孔成像的模型,為了簡化模型,將成像平面放在了小孔的前面,並且成的像也是正立的
在描述小孔的成像過程前,首先來定義兩個座標系:
相機座標系(三維座標系)
相機的中心被稱為焦點或者光心,以焦點oc
o
c為原點和座標軸xc
x
c,yc
y
c,zc
z
c組成了相機座標系
影象座標系(二維座標系)
成像平面中,以成像平面的中心o』為原點和座標軸x』,y』組成了影象座標系。
小孔成像實際就是將相機座標系中的三維點變換到成像平面中的影象座標系中的二維點。
假設,三維空間中點p,其在相機座標系中的座標是pc
=[x,
y,z]
t pc=
[x,y
,z]t
;其像點p,在影象座標系的中的座標是p=
[x,y
]tp =[
x,y]
t,由於光軸垂直與成像平面,那麼可以知道像點p在相機座標系中的座標是p=
[x,y
,z]t
p =[
x,y,
z]t,其中z =f(f是焦點到成像平面之間的距離,被稱為焦距)。
由上圖根據三角形的相似關係,可以得到如下公式: zf
=xx=
yyz f=
xx=y
y⎧⎩⎨
⎪⎪⎪⎪
x=fx
zy=f
yzz=
f ,\beta=\frac表示;c_x,c_y表示原點的平移量。
在上式的右邊三維點的座標p_c使用的是相機座標系,而相機位置卻不是固定不變的,需要將其變換到世界座標系下;從相機座標系變換到世界座標系下需要乙個旋轉和平移 ⎡⎣
⎢μν1
⎤⎦⎥=
⎡⎣⎢⎢
1dx0
001d
y0cx
cy1⎤
⎦⎥⎥⎡
⎣⎢f0
00f0
0010
00⎤⎦
⎥[r0
tt1]
⎡⎣⎢⎢
⎢xcy
czc1
⎤⎦⎥⎥
⎥ [μν
1]=[
1dx0
cx01
dycy
001]
[f00
00f0
0001
0][r
t0t1
][xc
yczc
1]乙個相機矩陣就由上面三個矩陣組成。
相機內參外參
參考資料 說內參矩陣之前,還得再引入畫素座標系的概念。上述影象點的表示是長度單位,不是畫素,由於我們拿到的影象是以畫素來衡量的,因此還需要將影象座標系轉化為畫素座標系。在此直接給出結論 於是之前的相機矩陣又得新增一項 上述推導中有乙個假設前提,就是相機的感光元件是正方形的,感光元件的安裝也是通過光軸...
相機的內參會改變嗎 相機內參和畸變引數進行校正程式
include using namespace std using namespace cv int test int argc,char ar videocapture capture 0 while 1 mat frame capture frame size image size image ...
相機內參與畸變模型
相機內參包括相機矩陣引數和畸變係數。相機內參矩陣為3 3的矩陣 m fx 0 ppx 0 fy ppy 0 0 1 畸變係數 k1 k2 k3 p1 p2 使用matlab可以很方便地進行相機內參標定 首先看一下無畸變情況下,已知相機座標系內的乙個點 xc,yc,zc 通過內參矩陣求出該點在影象平面...