孟靈


摘要:針對(duì)魚(yú)眼圖像存在的畸變問(wèn)題,借助球面投影,根據(jù)等距投影的原理逆向推導(dǎo)等距投影的校正模型,從而對(duì)魚(yú)眼畸變圖像進(jìn)行了校正,通過(guò)在Matlab平臺(tái)上進(jìn)行仿真實(shí)驗(yàn),取得了較好的校正效果。該算法使用方便,且對(duì)視場(chǎng)角不同的圖像都能進(jìn)行恰當(dāng)?shù)男U瑫r(shí)該算法在轉(zhuǎn)換過(guò)程中不會(huì)造成像素的損失,保留了魚(yú)眼圖像原有的清晰度。
關(guān)鍵詞:魚(yú)眼圖像 等距投影 畸變校正
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)05-0000-00
1 引言
魚(yú)眼鏡頭是一種較短焦距,視角接近甚至超過(guò)180度的超廣角鏡頭[1]。常規(guī)鏡頭的視角有限因而在許多領(lǐng)域內(nèi)受到限制,魚(yú)眼鏡頭具有大視角、信息量豐富等優(yōu)點(diǎn)而被廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)等領(lǐng)域,由于其焦距短視角大的特點(diǎn)和光學(xué)原理的約束,導(dǎo)致了所拍攝的圖像畸變非常明顯,難以滿足正常需求[2]。如果需要使用這些嚴(yán)重畸變的圖像,就要將這些圖像校正為人眼習(xí)慣的投影圖像。因此實(shí)現(xiàn)魚(yú)眼圖像的校正成為國(guó)內(nèi)外研究的熱點(diǎn)。魚(yú)眼鏡頭的幾何投影模型分為四種,即正交投影、等距投影、等立體角投影和體式投影[3]。應(yīng)用最廣泛的是等距投影,但在校正研究當(dāng)中多是以正交投影作為模型。
2 等距投影的魚(yú)眼圖像校正算法
2.1提取魚(yú)眼圖像的有效區(qū)域
從魚(yú)眼鏡頭拍攝的圖像特征可以發(fā)現(xiàn),魚(yú)眼圖像的有效范圍通常是一個(gè)圓形,有效范圍之外為黑色,如圖1所示。因此需要先確定圖像的輪廓,從而得到圖像的圓心和半徑。
分別從圖像的上、下、左、右四個(gè)方向進(jìn)行檢測(cè),利用公式Gray = 0.30*R+0.59*G+0.11*B,將RBG像素點(diǎn)轉(zhuǎn)化為灰度值,由于圖像為黑色時(shí),灰度值接近于零,因此定義一個(gè)相對(duì)較小的值T作為比較的標(biāo)準(zhǔn)。當(dāng)Gray>=T時(shí),像素點(diǎn)在圖像的有效區(qū)域內(nèi)[4]。最后確定有效區(qū)域的行數(shù)和列數(shù)分別為m、n,其示意圖如圖2所示。
2.2等距投影圖像的校正算法
等距投影,顧名思義就是沿某一方向的距離投影之后保持不變,其模型示意圖如圖3所示。圖中的半球表面即為魚(yú)眼圖像投影的半球面,球面半徑即為鏡頭焦距,記為f。假設(shè)P為魚(yú)眼圖像上任意一點(diǎn),點(diǎn)為P點(diǎn)在球面的投影,延長(zhǎng),交平行于xOy平面且與半球相切(切點(diǎn)為A)的平面于Q點(diǎn),根據(jù)等距投影的魚(yú)眼圖像特點(diǎn),Q點(diǎn)應(yīng)為圖像校正后P點(diǎn)的位置[5]。
不同鏡頭的視場(chǎng)角度可能不同,因此所拍攝圖片的畸變程度也就不同,為保證校正后圖像的精確度,需要先根據(jù)視場(chǎng)角度求出鏡頭焦距f。當(dāng)視場(chǎng)角度為時(shí),魚(yú)眼圖像剛好映射到整個(gè)半球面,于是魚(yú)眼圖像上的任一直徑映射到球面上即為經(jīng)過(guò)A點(diǎn)且連接半球直徑的圓弧。令R為魚(yú)眼圖像的半徑,由周長(zhǎng)公式得到
由于校正后的圖像比源圖像像素多了很多,正向投影后會(huì)出現(xiàn)大量的空隙點(diǎn),而在像素點(diǎn)較為分散的區(qū)域使用插值法難免會(huì)干擾圖像內(nèi)容,因此選擇多對(duì)一映射的逆向投影,即從目標(biāo)圖像投影到半球面,再?gòu)陌肭蛎嫱队暗皆磮D像上。
令目標(biāo)圖像的高寬分別為,,圖像上選取一點(diǎn),假設(shè)其坐標(biāo)為。進(jìn)行坐標(biāo)變換,將原點(diǎn)平移到圖像的中點(diǎn),于是得到原點(diǎn)變換后對(duì)應(yīng)的點(diǎn)的坐標(biāo)(xQ,yQ)為
首先求球面上P的映射點(diǎn)的坐標(biāo)。求出P點(diǎn)的入射角φ,用、、分別表示球面上點(diǎn)的x坐標(biāo)、y坐標(biāo)和z坐標(biāo)。得到以下方程:
通過(guò)和同號(hào)確定的取值,并求出。這時(shí)魚(yú)眼圖像的圓心在坐標(biāo)原點(diǎn)上,做一次坐標(biāo)變換,將原點(diǎn)從魚(yú)眼圖像的圓心位置平移到圖片的左上角,得到P點(diǎn)在源圖像上對(duì)應(yīng)點(diǎn)U的坐標(biāo)。
另外,當(dāng)Q點(diǎn)的x坐標(biāo)或y坐標(biāo)為0時(shí),即Q點(diǎn)位于x軸或y軸上,這時(shí)該坐標(biāo)沒(méi)有發(fā)生畸變,即當(dāng)時(shí),,當(dāng)時(shí),。
經(jīng)過(guò)以上的變換,即可做到從目標(biāo)圖像上任一點(diǎn)都可找到源圖像對(duì)應(yīng)點(diǎn)U的映射,從而完成等距投影魚(yú)眼圖像的校正。
3實(shí)驗(yàn)驗(yàn)證
為了驗(yàn)證本文算法的有效性,在Matlab平臺(tái)下對(duì)一幅魚(yú)眼圖像進(jìn)行實(shí)驗(yàn)驗(yàn)證,其結(jié)果如圖4所示,可以看出魚(yú)眼圖像經(jīng)過(guò)校正之后,圖像的形狀和比例基本可以恢復(fù)正常。
由于等距投影的特性,當(dāng)視場(chǎng)角大于π時(shí),校正后難以得到完整的校正圖像。當(dāng)視場(chǎng)角小于π時(shí),通過(guò)調(diào)整目標(biāo)圖像的大小即可獲得校正圖像的全景。因此對(duì)于視場(chǎng)角太大的圖像,可以考慮保證校正效果的前提下放棄圖像靠近邊緣的信息,如圖5(b)是用180度的視場(chǎng)角進(jìn)行的校正;或者在保證圖像信息全面的前提下降低部分校正效果,如圖5(c)是降低到140度的視場(chǎng)角進(jìn)行的校正。
由于魚(yú)眼圖像越靠近邊緣的地方信息量越大,也導(dǎo)致了校正后的圖像中越靠近邊緣的區(qū)域放大的倍數(shù)越大,而令邊緣區(qū)域的圖像在校正后和中心位置的圖像等比例,同時(shí)又不降低中心位置圖像的清晰度,這就使得校正后的圖像像素增加了數(shù)倍,且魚(yú)眼圖像的視場(chǎng)角越大邊緣畸變程度越大,圖像需要放大的倍數(shù)也越大;同時(shí),越接近中間的區(qū)域越清晰,越靠近邊緣的區(qū)域越模糊。如圖4(b)是圖4(a)的9倍,圖5(b)是圖5(a)的12倍,這時(shí)也可以根據(jù)需求對(duì)圖片進(jìn)行截取或按比例縮小等后續(xù)處理。
4 結(jié)語(yǔ)
本文針對(duì)魚(yú)眼圖像存在的畸變問(wèn)題,利用投影模型對(duì)其進(jìn)行了校正,并在Matlab平臺(tái)上進(jìn)行了仿真實(shí)驗(yàn),得到了接近日常習(xí)慣的透視影像,取得了較好的校正效果。該算法一方面使用方便,且對(duì)視場(chǎng)角不同的圖像都能進(jìn)行恰當(dāng)?shù)男U苊饬艘话阌成渌惴▽?duì)于不同的魚(yú)眼圖像,有的校正不足,有的卻過(guò)度校正的問(wèn)題。另一方面本算法在轉(zhuǎn)換過(guò)程中不會(huì)造成像素的損失,保留了圖像原有的清晰度。
參考文獻(xiàn)
[1] 張琨,王翠榮.基于圓分割的魚(yú)眼鏡頭圖像畸變校正算法[J].東北大學(xué)學(xué)報(bào),2011,32(9):1240-1243.
[2] 魏利勝,周圣文,張平改 等.基于雙經(jīng)度模型的魚(yú)眼圖像畸變矯正方法[J].儀器儀表學(xué)報(bào),2015,36(2):377-385.
[3] SCHNEIDER D,SCHWALBE E, MAAS H. Validation of geometric models for fisheye lenses[J].ISPRS Journal of Photogrammetry and Remote Sensing,2009,64(3): 259-266.
[4] 張偉.魚(yú)眼圖像校正算法研究[D].南京: 南京郵電大學(xué),2011.
[5] 徐朝慶.基于正交投影和等距投影的魚(yú)眼圖像校正[J].冶金自動(dòng)化,2015,(S1):538-542.
數(shù)字技術(shù)與應(yīng)用2016年5期