田鵬 夏道華 唐陽山
【摘要】魚眼鏡頭的視場很大,可以拍攝很大范圍的景物。魚眼鏡頭的視場大小,是和魚眼鏡頭的鏡片弧度成正相關(guān)的,即鏡頭弧度越大,所拍攝圖像的視場也就越大。通過研究魚眼鏡頭的成像模型,對魚眼鏡頭所成圖像進(jìn)行數(shù)學(xué)建模,并對模型進(jìn)行計算,得出一種可以改變魚眼鏡頭弧度的算法。
【關(guān)鍵詞】魚眼鏡頭;弧度;成像模型
Abstract:Field of view fisheye great,you can shoot a wide range of scenery. Fisheye field of view,and it is fisheye lens curvature of a positive correlation,the greater the curvature of the lens,the image captured by the greater field of view. By studying fisheye lens imaging model for fisheye images into mathematical modeling,and the model calculated the fisheye one can change the curvature of the algorithm.
Keywords:fisheye;radians;imaging model
1.引言
在圖像處理領(lǐng)域,魚眼鏡頭成像的畸變校正已經(jīng)發(fā)展的較為成熟,各種魚眼鏡頭畸變校正算法也是層出不窮。許多成熟的算法已經(jīng)在實際產(chǎn)品中應(yīng)用。但是畸變校正只是人們對于圖像處理需求的一小部分,在很多情況下,人們拍攝一些圖像時,不僅僅只考慮所成圖像本身在三維世界的真實性,還要考慮圖像所呈現(xiàn)的視覺效果上的沖擊等。在這些情況下,只是簡單的把魚眼鏡頭所成圖像進(jìn)行畸變校正,還原三維世界的真實位置,反而不能實現(xiàn)圖像所呈現(xiàn)的視覺效果。甚至在一些專業(yè)攝影中,還特別要求所成圖像的大幅度畸變來體現(xiàn)一定的藝術(shù)效果。本文就通過對魚眼鏡頭所成圖像進(jìn)行數(shù)學(xué)建模,通過數(shù)學(xué)模型,得出一種可以改變魚眼鏡頭弧度的算法,通過該算法,可以實現(xiàn)對魚眼鏡頭所成圖像變換到不同的鏡片弧度所成圖像的效果。在實際攝影中,可以通過該算法對所拍攝的圖像進(jìn)行變形,得到拍攝者更為滿意的圖像。
2.魚眼鏡頭的成像模型
魚眼鏡頭成像不同于普通鏡頭,具有相當(dāng)長的景深,有利于表現(xiàn)照片的長景深效果[1]。
為了改變魚眼鏡頭的弧度,首先需要把真實三維場景中的物體與攝像機所成的圖像之間的關(guān)系建立起來,只有明白了真實的景物在圖像上的分布規(guī)律,才能按照這種分布規(guī)律設(shè)計出一種可以改變魚眼鏡頭弧度的算法。
首先建立魚眼鏡頭的成像模型,假設(shè)空間任意一點P在魚眼鏡頭下的成像為p點,如圖1所示:
圖1 魚眼鏡頭的球面成像模型
OXYZ為魚眼鏡頭坐標(biāo)系,即相機坐標(biāo)系,OXY平面為圖像平面坐標(biāo)系,即圖像坐標(biāo)系。坐標(biāo)系中的半球面為單位球面的一半,即球心在原點,球的半徑為1。點P在通過魚眼鏡頭后在圖像平面上所成的像點為p。在魚眼鏡頭成像過程中,每一個空間點P被映射為連接原點O與P的射線OP,OP與單位球面的交點形成了一個在單位球面上的點。單位球面上的無數(shù)個點,形成了球面透視投影圖像。再將球面上這無數(shù)個點非線性的映射到OXY平面上,就得到一個圓形的魚眼圖像。
此外,圖像的成像過程中還涉及到從世界坐標(biāo)系到攝像機坐標(biāo)系的轉(zhuǎn)換,再由攝像機坐標(biāo)系到圖像坐標(biāo)系的映射,這個過程是由矩陣的變換來表示的。在魚眼鏡頭的畸變矯正中,這些變換過程是極其重要的,但是現(xiàn)在我們不通過矩陣的變換來使圖像達(dá)到去畸變的效果,而是直接從二維的圖像矩陣出發(fā)做運算,因此,我們不必關(guān)心各個坐標(biāo)系轉(zhuǎn)換的細(xì)節(jié)。
3.魚眼鏡頭的弧度校正模型
通過對魚眼鏡頭的成像模型進(jìn)一步了解,我們發(fā)現(xiàn):成像在原面上的圖像,可以近似的認(rèn)為是單位圓面上的像在OXY坐標(biāo)系上的投影。當(dāng)然,在這個投影的過程中,肯定會損失一部分信息,因為像素在成像的過程中被疊加在一起了。這種模型被稱作球面透視投影模型。
考慮魚眼鏡頭的球面透視投影模型,如果我們把OXY坐標(biāo)系上所成的圖像反向映射到圓面上,接著計算出圓面上每一點的圖像畸變系數(shù),然后再映射回OXY坐標(biāo)系上,則就會消除魚眼鏡頭所成圖像的畸變。但是我們的目的并不是消除畸變,而是改變魚眼鏡頭的弧度,即減弱這種畸變的程度或加強這種畸變的程度。從上面消除畸變的過程中受到啟發(fā),如果我們不把球面上的圖像映射回OXY坐標(biāo)系,而是映射到另一個球面上,如圖2所示。我們發(fā)現(xiàn),圖像的畸變發(fā)生了變化,但不是消除了。
圖2 單位圓面O上的像素Q映射到另一圓面o上
圖3 映射俯視圖
在映射的過程中,我們保持像素Q到Z軸的弧長L不變,即Q映射到圓面o上的q點后,q點到Z軸的距離也是L。通過保持這樣一種關(guān)系,我們就實現(xiàn)了把單位圓面上的像素映射到了更大半徑的圓面上。更大半徑的成像圓面則意味著更小的畸變和更窄的視場,這樣就實現(xiàn)了改變魚眼鏡頭成像弧度的目的。圖2是從側(cè)面觀察映射的過程,現(xiàn)在我們做一個俯視圖,那么映射之后的像素位置和映射之前的像素位置就更清楚了,如圖3所示:
注意圖3中的縱軸不是Z軸,而是Y軸,Q點是單位圓面上的像素點在OXY圓面上的映射點,q點是圓面o在OXY上面的映射點,由三角形的相似關(guān)系可以求出Q與q在坐標(biāo)上的關(guān)系。
通過圖2和圖3中的幾何關(guān)系,假設(shè)Q點的坐標(biāo)為Q( X ,Y )我們可以得到圓面o上的像素點q( x ,y )的坐標(biāo):
式中,R為單位圓O的半徑,默認(rèn)為1,R1為圓面o的半徑。至此,我們已經(jīng)求出了坐標(biāo)變換的公式,通過上面的公式求出新的像素點在新的圓面上的坐標(biāo),然后再映射回OXY平面上,我們就得到了改變魚眼鏡頭弧度后所成的圖像。
圖4 未進(jìn)行處理的圖像
圖5 處理之后的圖像
4.結(jié)束語
本文研究了魚眼鏡頭成像的模型,通過球面模型等距投影法,計算出改變圖像像素坐標(biāo)的公式,并對畸變的魚眼圖像進(jìn)行變換,實現(xiàn)了一種可以調(diào)節(jié)畸變程度,即改變魚眼鏡頭弧度的算法。該算法為圖像處理提供了一種新的思路,在實際的攝影中可以得到拍攝者更為滿意的圖像。
參考文獻(xiàn)
[1]苑光明,丁承君,俞學(xué)波.基于魚眼鏡頭的全方位視覺系統(tǒng)建模[J].天津工業(yè)大學(xué)學(xué)報,2010.6.
[2]袁輝.魚眼鏡頭視頻圖像實時矯正算法研究與實現(xiàn)[D].中山大學(xué).19-21.
[3]英向華,胡占義.一種基于球面投影透視約束的魚眼鏡頭校正方法[J].計算機學(xué)報,2003.Vol.26 No 12:1702-1708.
[4]B.C Brauer,K.Voss,A new algorethm to correct fish-eye and strong wide-angle lens distortion from single images,In: Proceedings of the 2001 International Conference on Image Processing[C].2001,page:225-228.