求解相機參數的過程就稱之為相機標定。
1.相機模型中的四個平面坐標系:
1.1圖像像素坐標系(u,v)
以像素為單位,是以圖像的左上方為原點的圖像坐標系;
1.2圖像物理坐標系(也叫像平面坐標系)(x,y)
以毫米為單位,用物理單位表示圖像像素位置,定義坐標系OXY,原點O定義在相機Zc軸與圖像平面交點;
1.3相機坐標系(Xc,Yc,Zc)
以毫米為單位,以相機的光心作為原點,Zc軸與光軸重合,並垂直於成像平面,且取攝影方向為正方向,Xc、Yc軸
與圖像物理坐標系的x,y軸平行,且OcO為攝像機的焦距f;
1.4世界坐標系(Xw,Yw,Zw)
根據具體情況而定,該坐標系描述環境中任何物體的位置,根據具體情況而定,滿足右手法則;
四個坐標系關系作圖如下:

2.四個坐標系轉換
2.1世界坐標系(Xw,Yw,Zw)->相機坐標系(Xc,Yc,Zc):
攝像機的外參數: 旋轉向量(大小為1×3的矢量或旋轉矩陣3×3)和平移向量(Tx,Ty,Tz)
從相機坐標系到世界坐標系的變換,是通過旋轉矩陣R和平移矩陣t完成的。

式中,M1稱為相機的外參數. R為3*3矩陣,T為3*1矩陣,0為(0,0,0),旋轉矩陣R是坐標軸依次繞x,y和z軸旋轉角度ψ,φ和θ,所形成的三個矩陣Rx(ψ),Ry(φ),Rz(θ)的總乘積,
如下:

矩陣R的計算公式為:

2.2相機坐標系(Xc,Yc,Zc):->圖像物理坐標系(x,y):
攝像機的內參數:攝像機內參數矩陣(fx,fy,u0,v0)和畸變系數(三個徑向k1,k2,k3,兩個切向p1,p2)
OpenCV中的畸變系數的排列(這點一定要注意k1,k2,p1,p2,k3)、
理想的攝像機模型是針孔模型,但是實際的鏡頭不符合這種假設。另外,相機的構造以及制造、安裝、工藝等因素也會造成誤差,導致相機通常會存在多種非線性畸變,使得上面介紹的針孔相機模型並不能准確地描述最終的成像關系。所以,為了使相機標定結果更加准確,在進行相機標定時應該將相機的非線性畸變考慮進來,修正理想投影模型。
徑向畸變
徑向畸變產生的主要原因是鏡頭徑向曲率的不規則變化,它會導致圖像的扭曲變形,例如,空間中的一條直線成像到圖像平面后發生彎曲,變形成一條曲線。這種畸變的特點是以主點為中心,沿徑向移動,離的距離越遠,產生的變形量就越大。徑向畸變是導致圖像畸變的主要因素。如圖所示,一個矩形的嚴重徑向失真被較正成理想線性鏡頭的圖像。

徑向畸變模型在OpenCV中被描述為:
xcorrected=x(1+k1r2+k2r4+k3r6)ycorrected=y(1+k1r2+k2r4+k3r6)
徑向畸變如下圖所示,有桶形畸變和枕形畸變兩種。

切向畸變
由於透鏡不是完美地平行於圖像平面,所以存在切向畸變。這種畸變使得一些區域看上去比預期的近。畸變模型為:
xcorrected=x+[2p1xy+p2(r2+2x2)]ycorrected=y+[p1(r2+2y2)+2p2xy]
通常還有離心畸變、薄棱鏡畸變等,但主要畸變是徑向畸變和切向畸變,故opencv中使用這個5個參數描述攝像機畸變,即:
Distortion coefficients=(k1,k2,p1,p2,k3)
2.3圖像物理坐標系(x,y):->圖像像素坐標系(u,v):


3.世界坐標系與圖像像素坐標系之間的變換關系:

M1稱為相機的內參數,M2稱為外參數


單應性矩陣H,來自於不同角度的拍攝,


轉自:http://blog.csdn.net/yonger_/article/details/55194602
