unity 畸變 攝像機成像 畸變模型

2021-10-17 06:17:07 字數 3461 閱讀 2038

一 攝像機成像模型

成像的過程實質上是幾個座標系的轉換。首先空間中的一點由世界座標系轉換到攝像機座標系,然後再將其投影到成像平面(攝像機的ccd),最後再將成像平面上的資料轉換到影象平面(最後生成的影象)。

圖1-1

世界空間內的乙個點在影象上成像的過程稱為投影成像過程,這中間轉換過程構成的矩陣m稱為投影矩陣。

攝像機的畸變引數與相機成像時採用的解析度無關,而fx,fy和光心位置cx,cy與解析度有關,但是成倍數關係,例如在解析度320×240解析度標定得到內引數為fx0,fy0,cx0,cy0,那麼在解析度640×480下對應的引數則為2fx0,2fy0,2cx0,2cy0。

上面這些引數中,f,t所採用的量綱都是mm,而dx和dy指的是每個畫素個數的大小,即mm/pixel,那麼經過換算最後得到的u、v的量綱自然也就是畫素。fx和fy是由f/dx,f/dy計算而來,表示的是長度值為f時對應的畫素個數,也即長度值為f(mm)時,在影象平面的x方向和y方向的畫素個數,fx、fy、u0、v0構成a,a右邊的資料為[r|t]m』,看起來[r|t]m』對應的資料的量綱好像是mm,因為m』和t的量綱都是mm,這樣a裡面的量綱又為畫素,這樣乘起來的量綱就是mm*pixel了,這顯然不對。但是事實情況並不是真的這樣,最後[r|t]m』與a相乘的時候,[r|t]m』的結果是需要進行歸一化的,即[xc

yc zc 1] →[xc/zc yc/zc 1],這個時候它的量綱其實就只是倍數了。整個過程如下圖

圖 1-2

opencv標定出來的內引數矩陣一般為(解析度為640×480) d

5.3193633829444082e+002 0. 3.1950000000000000e+002 0.

5.3193633829444082e+002 2.3950000000000000e+002 0. 0. 1.

這裡的fx≈531.9,fy≈531.9,u0=319.5,v0=239.5。u0和v0比較好理解,差不多就是影象的中心,但是這裡的fx和fy為500多還是有點抽象,雖然前面已經說了表示焦距長度對應的畫素個數。根據上圖中u和v的計算公式,還有標定的內參矩陣值,其實可以反推出x』、y』的大致大小,這裡u的最大值是640,v的最大值為480,用這些值可以算出x』和y』的最大值分別為0.6025和0.4521,它們分別代表經過z值歸一化後的比例值,這個值實質上反映了相機的視角。

二 成像畸變

在沒有畸變的情況下,理想的成像的過程是如圖1-2所示

但是在實際的情況中,真正的鏡頭通常有一些形變,主要的變形為徑向形變,也會有輕微的切向形變。所以上面的模型需要擴充套件為:

圖2-1

k1和k2是徑向形變係數,p1和p2是切向形變係數。opencv中沒有考慮高階係數。形變係數跟拍攝的場景無關,因此它們是內引數,而且與拍攝影象的解析度無關。參見opencv中文wiki

opencv計算得到的畸變引數形式為: d

6.7442695842244271e-002 2.4180872220967919e-001 0. 0.

-3.3970575589699975e-001

對應存放的畸變引數為[k1,k2,p1,p2[,k3[,k4,k5,k6]]

三 畸變校正

根據前面的說明,可以知道攝像機拍下來的是存在畸變的,現在需要根據內參矩陣和畸變引數對存在畸變的影象進行校正。校正的過程就是就是圖2-1描述的過程。

首先是根據拍攝得到的存在畸變影象的座標,計算出根據畸變模型得到的校正影象對應的座標,這樣就建立了畸變影象座標和校正影象座標之間的對映關係。同時計算出來的校正座標存在小數,所以就需要對其插值。

例如xysrc(1,1)xyrect(1.5,1.0),那麼假如採用簡單的線性插值的話,irect(1.5,1.0)=[isrc(1,1)+isrc(2,1)]*0.5

irect就是算出來的校正後的畫素值。

進行畸變的matlab校正**(參見stackoverflow)如下:

得到的結果圖為:

攝像機成像 畸變模型

成像的過程實質上是幾個座標系的轉換。首先空間中的一點由世界座標系轉換到攝像機座標系,然後再將其投影到成像平面 攝像機的ccd 最後再將成像平面上的資料轉換到影象平面 最後生成的影象 圖1 1 世界空間內的乙個點在影象上成像的過程稱為投影成像過程,這中間轉換過程構成的矩陣m稱為投影矩陣。攝像機的畸變引...

攝像機成像 畸變模型

成像的過程實質上是幾個座標系的轉換。首先空間中的一點由世界座標系轉換到攝像機座標系,然後再將其投影到成像平面 攝像機的ccd 最後再將成像平面上的資料轉換到影象平面 最後生成的影象 圖1 1 世界空間內的乙個點在影象上成像的過程稱為投影成像過程,這中間轉換過程構成的矩陣m稱為投影矩陣。攝像機的畸變引...

攝像機成像 畸變模型

原創 2013年07月22日 17 37 42 成像的過程實質上是幾個座標系的轉換。首先空間中的一點由世界座標系轉換到攝像機座標系,然後再將其投影到成像平面 攝像機的ccd 最後再將成像平面上的資料轉換到影象平面 最後生成的影象 圖1 1 世界空間內的乙個點在影象上成像的過程稱為投影成像過程,這中間...