田鵬 夏道華 唐陽山
【摘要】魚眼鏡頭的視場很大,可以拍攝很大范圍的景物。魚眼鏡頭的視場大小,是和魚眼鏡頭的鏡片弧度成正相關的,即鏡頭弧度越大,所拍攝圖像的視場也就越大。通過研究魚眼鏡頭的成像模型,對魚眼鏡頭所成圖像進行數學建模,并對模型進行計算,得出一種可以改變魚眼鏡頭弧度的算法。
【關鍵詞】魚眼鏡頭;弧度;成像模型
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.引言
在圖像處理領域,魚眼鏡頭成像的畸變校正已經發展的較為成熟,各種魚眼鏡頭畸變校正算法也是層出不窮。許多成熟的算法已經在實際產品中應用。但是畸變校正只是人們對于圖像處理需求的一小部分,在很多情況下,人們拍攝一些圖像時,不僅僅只考慮所成圖像本身在三維世界的真實性,還要考慮圖像所呈現的視覺效果上的沖擊等。在這些情況下,只是簡單的把魚眼鏡頭所成圖像進行畸變校正,還原三維世界的真實位置,反而不能實現圖像所呈現的視覺效果。甚至在一些專業攝影中,還特別要求所成圖像的大幅度畸變來體現一定的藝術效果。本文就通過對魚眼鏡頭所成圖像進行數學建模,通過數學模型,得出一種可以改變魚眼鏡頭弧度的算法,通過該算法,可以實現對魚眼鏡頭所成圖像變換到不同的鏡片弧度所成圖像的效果。在實際攝影中,可以通過該算法對所拍攝的圖像進行變形,得到拍攝者更為滿意的圖像。
2.魚眼鏡頭的成像模型
魚眼鏡頭成像不同于普通鏡頭,具有相當長的景深,有利于表現照片的長景深效果[1]。
為了改變魚眼鏡頭的弧度,首先需要把真實三維場景中的物體與攝像機所成的圖像之間的關系建立起來,只有明白了真實的景物在圖像上的分布規律,才能按照這種分布規律設計出一種可以改變魚眼鏡頭弧度的算法。
首先建立魚眼鏡頭的成像模型,假設空間任意一點P在魚眼鏡頭下的成像為p點,如圖1所示:
圖1 魚眼鏡頭的球面成像模型
OXYZ為魚眼鏡頭坐標系,即相機坐標系,OXY平面為圖像平面坐標系,即圖像坐標系。坐標系中的半球面為單位球面的一半,即球心在原點,球的半徑為1。點P在通過魚眼鏡頭后在圖像平面上所成的像點為p。在魚眼鏡頭成像過程中,每一個空間點P被映射為連接原點O與P的射線OP,OP與單位球面的交點形成了一個在單位球面上的點。單位球面上的無數個點,形成了球面透視投影圖像。再將球面上這無數個點非線性的映射到OXY平面上,就得到一個圓形的魚眼圖像。
此外,圖像的成像過程中還涉及到從世界坐標系到攝像機坐標系的轉換,再由攝像機坐標系到圖像坐標系的映射,這個過程是由矩陣的變換來表示的。在魚眼鏡頭的畸變矯正中,這些變換過程是極其重要的,但是現在我們不通過矩陣的變換來使圖像達到去畸變的效果,而是直接從二維的圖像矩陣出發做運算,因此,我們不必關心各個坐標系轉換的細節。
3.魚眼鏡頭的弧度校正模型
通過對魚眼鏡頭的成像模型進一步了解,我們發現:成像在原面上的圖像,可以近似的認為是單位圓面上的像在OXY坐標系上的投影。當然,在這個投影的過程中,肯定會損失一部分信息,因為像素在成像的過程中被疊加在一起了。這種模型被稱作球面透視投影模型。
考慮魚眼鏡頭的球面透視投影模型,如果我們把OXY坐標系上所成的圖像反向映射到圓面上,接著計算出圓面上每一點的圖像畸變系數,然后再映射回OXY坐標系上,則就會消除魚眼鏡頭所成圖像的畸變。但是我們的目的并不是消除畸變,而是改變魚眼鏡頭的弧度,即減弱這種畸變的程度或加強這種畸變的程度。從上面消除畸變的過程中受到啟發,如果我們不把球面上的圖像映射回OXY坐標系,而是映射到另一個球面上,如圖2所示。我們發現,圖像的畸變發生了變化,但不是消除了。
圖2 單位圓面O上的像素Q映射到另一圓面o上
圖3 映射俯視圖
在映射的過程中,我們保持像素Q到Z軸的弧長L不變,即Q映射到圓面o上的q點后,q點到Z軸的距離也是L。通過保持這樣一種關系,我們就實現了把單位圓面上的像素映射到了更大半徑的圓面上。更大半徑的成像圓面則意味著更小的畸變和更窄的視場,這樣就實現了改變魚眼鏡頭成像弧度的目的。圖2是從側面觀察映射的過程,現在我們做一個俯視圖,那么映射之后的像素位置和映射之前的像素位置就更清楚了,如圖3所示:
注意圖3中的縱軸不是Z軸,而是Y軸,Q點是單位圓面上的像素點在OXY圓面上的映射點,q點是圓面o在OXY上面的映射點,由三角形的相似關系可以求出Q與q在坐標上的關系。
通過圖2和圖3中的幾何關系,假設Q點的坐標為Q( X ,Y )我們可以得到圓面o上的像素點q( x ,y )的坐標:
式中,R為單位圓O的半徑,默認為1,R1為圓面o的半徑。至此,我們已經求出了坐標變換的公式,通過上面的公式求出新的像素點在新的圓面上的坐標,然后再映射回OXY平面上,我們就得到了改變魚眼鏡頭弧度后所成的圖像。
圖4 未進行處理的圖像
圖5 處理之后的圖像
4.結束語
本文研究了魚眼鏡頭成像的模型,通過球面模型等距投影法,計算出改變圖像像素坐標的公式,并對畸變的魚眼圖像進行變換,實現了一種可以調節畸變程度,即改變魚眼鏡頭弧度的算法。該算法為圖像處理提供了一種新的思路,在實際的攝影中可以得到拍攝者更為滿意的圖像。
參考文獻
[1]苑光明,丁承君,俞學波.基于魚眼鏡頭的全方位視覺系統建模[J].天津工業大學學報,2010.6.
[2]袁輝.魚眼鏡頭視頻圖像實時矯正算法研究與實現[D].中山大學.19-21.
[3]英向華,胡占義.一種基于球面投影透視約束的魚眼鏡頭校正方法[J].計算機學報,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.