本發(fā)明涉及一種畸變圖像矯正方法,具體涉及一種魚眼圖像畸變矯正方法。
背景技術(shù):
實景成像技術(shù)是利用攝像頭將采集的圖像經(jīng)過處理后實時還原實景的過程,也是目前視覺領(lǐng)域的基本方向之一。同時,實景成像技術(shù)廣泛應用于立體視覺、運動分析、虛擬現(xiàn)實等領(lǐng)域。
魚眼鏡頭在實景成像技術(shù)中被廣泛使用,相比于普通鏡頭,魚眼鏡頭最主要的優(yōu)勢在于其廣闊的視角,可以采集更大范圍實景的圖像,但是魚眼鏡頭存在的問題是所采集的圖像在徑向和切向上分別存在著一定程度的畸變,圖像的畸變導致人眼無法直觀地判斷圖像的真實景象。而如何消除魚眼圖像的畸變問題是目前實景成像技術(shù)中最迫切需要解決的問題,尤其是在鏡頭的內(nèi)在參數(shù)、外在參數(shù)及畸變系數(shù)未知的情況下,消除魚眼圖像畸變矯正的實現(xiàn)更加困難。
目前消除魚眼圖像畸變的方法有應用經(jīng)緯映射圖像方法、多項式擬合方法及張正友標定法等,其中應為經(jīng)緯映射圖像方法是將單位球面圖像上映射成矩形圖像,其存在的問題在于只能矯正徑向畸變,無法矯正切向畸變,即水平方向上的畸變無法得以矯正;多項式擬合方法是通過擬合多項式估計模型參數(shù),其主要缺點在于計算量過大,從而直接導致圖像的處理速度過慢;而張正友標定法是利用調(diào)整標定物的方向并采集大量的魚眼圖像,通過圖像中的特征點估計出鏡頭的內(nèi)在參數(shù)、外在參數(shù)及畸變系數(shù),其缺點在于需要采集圖像的數(shù)量過多,效率低下,同時利用此方法矯正魚眼圖像的視角過小。而且現(xiàn)有的魚眼圖像校正方法在鏡頭的內(nèi)在參數(shù)、外在參數(shù)及畸變系數(shù)未知的情況下,存在的無法矯正切向畸變、計算量大及矯正視角小等問題。
技術(shù)實現(xiàn)要素:
本發(fā)明為了解決現(xiàn)有的魚眼圖像校正方法無法在鏡頭內(nèi)在參數(shù)、外在參數(shù)及畸變系數(shù)未知的情況下矯正切向畸變的問題。
一種基于魚眼成像模型的魚眼圖像畸變矯正方法,包括以下步驟:
步驟一、將像素坐標表示對應位置上的像素,設魚眼鏡頭采集的魚眼圖像的像素為(xts,yts),對魚眼圖像的像素(xts,yts)進行坐標轉(zhuǎn)換,將圖像坐標原點從圖像左上角移至圖像中心,得到坐標轉(zhuǎn)換后的魚眼圖像的像素(xs,ys);
步驟二、將魚眼圖像畸變矯正后的圖像記為目標圖像,假設目標圖像上某像素的為(xd,yd),對假設的目標圖像的像素(xd,yd)進行水平和垂直方向上的修正;
步驟三、根據(jù)針孔成像模型的成像規(guī)律以及魚眼成像模型的成像特點,將坐標修正后的目標圖像映射到魚眼鏡頭成像模型下的魚眼圖像,即進行直角坐標與極坐標的轉(zhuǎn)換,進而根據(jù)魚眼圖像得到矯正后的目標圖像。
優(yōu)選地,所述步驟二具體處理過程包括以下步驟:
步驟二一、假設目標圖像上某像素的為(xd,yd),在垂直方向加入垂直修正項△y,得到修正后的縱坐標y′d:
y′d=y(tǒng)d+△y
并根據(jù)以上修正關(guān)系得到目標圖像像素的縱坐標yd的表示形式:
其中,Ky為縱坐標修正系數(shù);
步驟二二、對于步驟二一中完成垂直方向修正的目標圖像,在水平方向加入水平修正項△x,得到修正后的橫坐標x′d:
△x=Kxxdy′d2
x′d=xd+△x
并根據(jù)以上修正關(guān)系得到目標圖像像素橫坐標xd的表示形式:
其中,Kx是橫坐標修正系數(shù);
步驟二三、將經(jīng)過像素修正后的目標圖像的坐標原點轉(zhuǎn)移至目標圖像的左上角,得到經(jīng)過坐標系轉(zhuǎn)換后的目標圖像像素(xtd,ytd):
其中,w、h分別為圖像的寬度和高度。
優(yōu)選地,所述步驟三具體處理過程包括以下步驟:
步驟三一、利用坐標修正后目標圖像像素(x′d,y′d)對魚眼圖像像素(xs,ys)進行表示:
其中,f為魚眼鏡頭焦距;
步驟三二、對于步驟三一得到的魚眼圖像像素(xs,ys)進行坐標轉(zhuǎn)換,將坐標原點轉(zhuǎn)移至魚眼圖像左上角,得到坐標轉(zhuǎn)換后的魚眼圖像像素(xts,yts);
步驟三三、對于步驟二三得到的經(jīng)過坐標系轉(zhuǎn)換后的目標圖像像素(xtd,ytd)和步驟三二完成坐標轉(zhuǎn)換后的魚眼圖像(xts,yts)進行像素坐標映射,將魚眼圖像各個坐標點的像素值賦值給修正后的目標圖像相應坐標的像素。
優(yōu)選地,一種基于魚眼成像模型的魚眼圖像畸變矯正方法還包括以下步驟:
步驟四、將步驟三得到的映射關(guān)系進行存儲,對后續(xù)采集的魚眼圖像進行矯正;
步驟五、對魚眼圖像完成畸變矯正后的圖像進行插值,得到最終處理后的圖像。
優(yōu)選地,所述步驟四具體處理過程包括以下步驟:
步驟四一、定義一個與魚眼圖像相同尺寸的32位3通道的圖像;
步驟四二、將后續(xù)采集的魚眼圖像各個像素點的橫坐標存入至所述處理后的32位3通道圖像的各個像素的第一通道,相應的縱坐標存入至所述處理后的32位3通道圖像的各個像素的第二通道,所述處理后的32位3通道圖像的第一通道和第二通道分別代表目標圖像像素點對應的橫坐標和縱坐標;
將后續(xù)采集的魚眼圖像各個像素點的坐標記為(xi,yi),修正后的目標圖像相應坐標記為(xj,yj),將xi的值存入至所述的32位3通道圖像中像素坐標為(xj,yj)的第一通道,相應的縱坐標yi的值存入至所述的32位3通道圖像中像素坐標為(xj,yj)的第二通道,所述處理后的32位3通道圖像的第一通道和第二通道分別代表魚眼圖像像素點對應的橫坐標和縱坐標;
步驟四三、將所述處理后的32位3通道圖像作為映射工具,批量將存入魚眼圖像的橫縱坐標存入所述處理后的32位3通道圖像,得到批量矯正處理的魚眼圖像,保證了處理的快速性。
優(yōu)選地,步驟三一中所述的魚眼鏡頭焦距v為攝像頭視場,Kf為焦距比例系數(shù),通過手動調(diào)節(jié)至圖像視野足夠大時確定。
優(yōu)選地,步驟三一所述的通過坐標修正后目標圖像像素(x′d,y′d)對魚眼圖像像素(xs,ys)進行表示的過程包括以下步驟:
根據(jù)魚眼模型成像和針孔成像規(guī)律,并利用相似三角形的關(guān)系,得到魚眼圖像與目標圖像的坐標轉(zhuǎn)換關(guān)系:
其中,θ為入射角,(X,Y)為在針孔成型模型下圖像上像素坐標,(x,y)為在魚眼成像模型下圖像上像素坐標(與(X,Y)的入射角相同的情況下);
修正后目標圖像對應于針孔成像模型,將修正后修正后目標圖像像素坐標(x′d,y′d)替代針孔成型模型下圖像上像素坐標(X,Y);將魚眼圖像坐標(xs,ys)替代魚眼成像模型下圖像上像素坐標(x,y),進而得到坐標修正后目標圖像像素(x′d,y′d)對魚眼圖像像素(xs,ys)的關(guān)系:
優(yōu)選地,步驟二三所述將經(jīng)過像素修正后的目標圖像的坐標原點轉(zhuǎn)移至目標圖像的左上角得到經(jīng)過坐標系轉(zhuǎn)換后的目標圖像像素(xtd,ytd)的過程包括以下步驟:
將經(jīng)過像素修正后的目標圖像坐標原點轉(zhuǎn)移至左上角的公式如下:
將帶入上述公式得到
優(yōu)選地,步驟三二所述的將坐標原點轉(zhuǎn)移至魚眼圖像左上角,得到坐標轉(zhuǎn)換后的魚眼圖像像素(xts,yts)的過程包括以下步驟:
將魚眼圖像像素(xs,ys)坐標原點轉(zhuǎn)移至左上角的公式如下:
然后將帶入上述公式,得到:
本發(fā)明具有以下效果:
1)在鏡頭的內(nèi)在參數(shù)、外在參數(shù)及畸變系數(shù)未知的情況下,本發(fā)明也能夠?qū)崿F(xiàn)較大視角下的畸變圖像徑向和切向上的矯正,并且達到理想的矯正效果;同時本發(fā)明能夠利用較少的計算量實現(xiàn)在較大視角下的畸變圖像徑向和切向矯正。
2)本發(fā)明的步驟四和步驟五給出了對于批量圖像情況下的圖像矯正方法,例如視頻,每幅圖像的處理不需要經(jīng)過全部算法的實現(xiàn),而是采用存儲映射關(guān)系的方法,保證了同一個魚眼鏡頭采集的所有圖像均得以相同效果的畸變矯正,并且明顯提高了圖像處理的速度。
附圖說明
圖1至圖5為利用本發(fā)明進行矯正過程的對比效果圖;其中,圖1為一幅魚眼圖像;圖2為未對魚眼圖像進行水平和垂直方向上的修正處理得到的矯正圖像;圖3為只經(jīng)過垂直方向修正得到的矯正圖像;圖4為經(jīng)過垂直方向修正和水平方向修正后得到的矯正圖像;圖5為經(jīng)過步驟一至三處理后并對圖像進行插值得到最終的矯正圖像。
圖6為存儲的與原魚眼圖像相同尺寸的32位3通道圖像,圖7為32位3通道圖像中像素坐標的第一通道圖像,圖8為32位3通道圖像中像素坐標的第二通道圖像。
具體實施方式
具體實施方式一:
一種基于魚眼成像模型的魚眼圖像畸變矯正方法,包括以下步驟:
步驟一、將像素坐標表示對應位置上的像素,設魚眼鏡頭采集的魚眼圖像的像素為(xts,yts),對魚眼圖像的像素(xts,yts)進行坐標轉(zhuǎn)換,將圖像坐標原點從圖像左上角移至圖像中心,得到坐標轉(zhuǎn)換后的魚眼圖像的像素(xs,ys);對魚眼圖像的像素(xts,yts)進行坐標轉(zhuǎn)換時需要將圖像坐標原點從圖像左上角移至圖像中心,是因為在魚眼圖像的坐標系原點在魚眼圖像左上角;
步驟二、將魚眼圖像畸變矯正后的圖像記為目標圖像,假設目標圖像上某像素的為(xd,yd),對假設的目標圖像的像素(xd,yd)進行水平和垂直方向上的修正;
步驟三、根據(jù)針孔成像模型的成像規(guī)律以及魚眼成像模型的成像特點,將坐標修正后的目標圖像映射到魚眼鏡頭成像模型下的魚眼圖像,即進行直角坐標與極坐標的轉(zhuǎn)換,進而根據(jù)魚眼圖像得到矯正后的目標圖像。
具體實施方式二:
本實施方式所述步驟二具體處理過程包括以下步驟:
步驟二一、假設目標圖像上某像素的為(xd,yd),在垂直方向加入垂直修正項△y,得到修正后的縱坐標y′d:
y′d=y(tǒng)d+△y
并根據(jù)以上修正關(guān)系得到目標圖像像素的縱坐標yd的表示形式:
其中,Ky為縱坐標修正系數(shù);
步驟二二、對于步驟二一中完成垂直方向修正的目標圖像,在水平方向加入水平修正項△x,得到修正后的橫坐標x′d:
△x=Kxxdy′d2
x′d=xd+△x
并根據(jù)以上修正關(guān)系得到目標圖像像素橫坐標xd的表示形式:
其中,Kx是橫坐標修正系數(shù);
步驟二三、將經(jīng)過像素修正后的目標圖像的坐標原點轉(zhuǎn)移至目標圖像的左上角,得到經(jīng)過坐標系轉(zhuǎn)換后的目標圖像像素(xtd,ytd):
其中,w、h分別為圖像的寬度和高度。
其他步驟和參數(shù)與具體實施方式一相同。
具體實施方式三:
本實施方式所述步驟三具體處理過程包括以下步驟:
步驟三一、利用坐標修正后目標圖像像素(x′d,y′d)對魚眼圖像像素(xs,ys)進行表示:
其中,f為魚眼鏡頭焦距;
步驟三二、對于步驟三一得到的魚眼圖像像素(xs,ys)進行坐標轉(zhuǎn)換,將坐標原點轉(zhuǎn)移至魚眼圖像左上角,得到坐標轉(zhuǎn)換后的魚眼圖像像素(xts,yts);
步驟三三、對于步驟二三得到的經(jīng)過坐標系轉(zhuǎn)換后的目標圖像像素(xtd,ytd)和步驟三二完成坐標轉(zhuǎn)換后的魚眼圖像(xts,yts)進行像素坐標映射,將魚眼圖像各個坐標點的像素值賦值給修正后的目標圖像相應坐標的像素。
其他步驟和參數(shù)與具體實施方式一或二相同。
具體實施方式四:
本實施方式所述一種基于魚眼成像模型的魚眼圖像畸變矯正方法,還包括以下步驟:
步驟四、將步驟三得到的映射關(guān)系進行存儲,對后續(xù)采集的魚眼圖像進行矯正;
步驟五、對魚眼圖像完成畸變矯正后的圖像進行插值,得到最終處理后的圖像。
其他步驟和參數(shù)與具體實施方式一至三之一相同。
具體實施方式五:
本實施方式所述步驟四具體處理過程包括以下步驟:
步驟四一、定義一個與魚眼圖像相同尺寸的32位3通道的圖像;
步驟四二、將后續(xù)采集的魚眼圖像各個像素點的橫坐標存入至所述處理后的32位3通道圖像的各個像素的第一通道,相應的縱坐標存入至所述處理后的32位3通道圖像的各個像素的第二通道,所述處理后的32位3通道圖像的第一通道和第二通道分別代表目標圖像像素點對應的橫坐標和縱坐標;
將后續(xù)采集的魚眼圖像各個像素點的坐標記為(xi,yi),修正后的目標圖像相應坐標記為(xj,yj),將xi的值存入至所述的32位3通道圖像中像素坐標為(xj,yj)的第一通道,相應的縱坐標yi的值存入至所述的32位3通道圖像中像素坐標為(xj,yj)的第二通道,所述處理后的32位3通道圖像的第一通道和第二通道分別代表魚眼圖像像素點對應的橫坐標和縱坐標;
步驟四三、將所述處理后的32位3通道圖像作為映射工具,批量將存入魚眼圖像的橫縱坐標存入所述處理后的32位3通道圖像,得到批量矯正處理的魚眼圖像,保證了處理的快速性。
其他步驟和參數(shù)與具體實施方式一至四之一相同。
具體實施方式六:
本實施方式的步驟三一中所述的魚眼鏡頭焦距v為攝像頭視場,Kf為焦距比例系數(shù),通過手動調(diào)節(jié)至圖像視野足夠大時確定。
其他步驟和參數(shù)與具體實施方式一至五之一相同。
具體實施方式七:
本實施方式的步驟三一所述的通過坐標修正后目標圖像像素(x′d,y′d)對魚眼圖像像素(xs,ys)進行表示的過程包括以下步驟:
根據(jù)魚眼模型成像和針孔成像規(guī)律,并利用相似三角形的關(guān)系,得到魚眼圖像與目標圖像的坐標轉(zhuǎn)換關(guān)系:
其中,θ為入射角,(X,Y)為在針孔成型模型下圖像上像素坐標,(x,y)為在魚眼成像模型下圖像上像素坐標(與(X,Y)的入射角相同的情況下);
修正后目標圖像對應于針孔成像模型,將修正后修正后目標圖像像素坐標(x′d,y′d)替代針孔成型模型下圖像上像素坐標(X,Y);將魚眼圖像坐標(xs,ys)替代魚眼成像模型下圖像上像素坐標(x,y),進而得到坐標修正后目標圖像像素(x′d,y′d)對魚眼圖像像素(xs,ys)的關(guān)系:
其他步驟和參數(shù)與具體實施方式一至六之一相同。
具體實施方式八:
本實施方式的步驟二三所述將經(jīng)過像素修正后的目標圖像的坐標原點轉(zhuǎn)移至目標圖像的左上角得到經(jīng)過坐標系轉(zhuǎn)換后的目標圖像像素(xtd,ytd)的過程包括以下步驟:
將經(jīng)過像素修正后的目標圖像坐標原點轉(zhuǎn)移至左上角的公式如下:
將帶入上述公式得到
其他步驟和參數(shù)與具體實施方式一至七之一相同。
具體實施方式九:
本實施方式的步驟三二所述的將坐標原點轉(zhuǎn)移至魚眼圖像左上角,得到坐標轉(zhuǎn)換后的魚眼圖像像素(xts,yts)的過程包括以下步驟:
將魚眼圖像像素(xs,ys)坐標原點轉(zhuǎn)移至左上角的公式如下:
然后將帶入上述公式,得到:
其他步驟和參數(shù)與具體實施方式一至八之一相同。
實施例
一幅魚眼圖像如圖1所示,利用本發(fā)明對魚眼圖像進行矯正,如果未對魚眼圖像進行步驟二中所述的對假設的目標圖像的像素(xd,yd)進行水平和垂直方向上的修正處理,能夠得到的矯正圖像如圖2所示,可見矯正圖像仍然存在著圖像畸變;按照步驟二一所述在垂直方向加入垂直修正項,得到的矯正圖像如圖3所示,并在水平方向加入水平修正項,得到的矯正圖像如圖4所示,也就是經(jīng)過本發(fā)明完整的步驟二處理后得到的畸變矯正圖像如圖4所示,可見已經(jīng)得到好的矯正效果;僅僅是圖像的像素上還需要進一步處理,然后通過步驟五對圖像進行插值,得到最終處理后的圖像,如圖5所示。
如果針對大批量的畸變圖像進行處理,每幅圖像都按照步驟一至三進行處理會造成重復過程而花費較多的時間,如果通過步驟四的處理,采用存儲映射關(guān)系的方法,能夠不用將每幅圖片均進行處理,只要按照映射關(guān)系將圖片進行處理即可,能夠節(jié)省大量的圖像處理時間;以圖6至圖8所示,說明步驟四一至步驟四三的處理效果,圖6為存儲的與原魚眼圖像相同尺寸的32位3通道圖像,圖7為32位3通道圖像中像素坐標的第一通道圖像,圖8為32位3通道圖像中像素坐標的第二通道圖像。與現(xiàn)有的畸變圖像處理方法相比,在處理相同數(shù)量的圖像,本發(fā)明能夠節(jié)約50%以上的時間,明顯提高了圖像處理的速度;并且處理的畸變圖像越多,節(jié)省的時間越多,即本發(fā)明的處理效率越高;同時能夠保證同一個魚眼鏡頭采集的所有圖像均得以相同效果的畸變矯正。