本發(fā)明涉及圖像處理技術領域,更具體地說,涉及一種修正魚眼圖像的投影方法及系統(tǒng)。
背景技術:
魚眼鏡頭是一種焦距為16mm或更短的并且視角接近或等于180°。它是一種極端的廣角鏡頭。為使鏡頭達到最大的攝影視角,這種攝影鏡頭的前鏡片直徑很短且呈拋物狀向鏡頭前部凸出,與魚的眼睛頗為相似,“魚眼鏡頭”因此而得名。如圖1所示,魚眼鏡頭的視角非常廣,由于要把半球區(qū)域的景象投影到一個平面,魚眼鏡頭會產(chǎn)生一個嚴重畸變的圖像,包括徑向畸變和切向畸變。切向的畸變是無關緊要的,徑向畸變會將現(xiàn)實中的直線扭曲成一條曲線,而且點的位置在徑向上也會偏離正確的位置。隨著遠離魚眼圖像中心位置,這些畸變隨之會加強,進而不僅會影響觀察,而且辨識度也很差。
在現(xiàn)有的修正魚眼圖像的投影方式中,將魚眼圖像投影到球體的表面,在這個投影的過程,首先將整個球面根據(jù)經(jīng)線和緯線或分成許多小的網(wǎng)格,而每一個網(wǎng)格有四個頂點,然后計算每個網(wǎng)格上的頂點到原魚眼圖像的映射,最后,根據(jù)計算出的映射關系對整個球面進行渲染。在此過程中,整個球面大約有2000多個頂點需要去計算點與點之間的映射,且還需要將每個計算出來的結果進行保存,因此,在此投影過程中,計算點與點之間的映射耗時較大,且耗費內存資源。
技術實現(xiàn)要素:
本發(fā)明要解決的技術問題在于,針對現(xiàn)有的修正魚眼圖像的投影方式的上述不足,提供一種修正魚眼圖像的投影方法及系統(tǒng)。
本發(fā)明解決上述技術問題所采用的技術方案是提供了一種修正魚眼圖像的投影方法,所述方法包括以下步驟:
將所述魚眼圖像進行投影變換得到索引表;
將所述索引表映射到立方體的表面上以得到所述表面在所述索引表中的位置關系。
在上述的修正魚眼圖像的投影方法中,通過等量矩形投影將所述魚眼圖像進行投影變換得到所述索引表。
在上述的修正魚眼圖像的投影方法中,所述魚眼圖像的像素點(xf,yf)與所述魚眼圖像的像素點(xf,yf)在所述索引表中對應的點(xp,yp)的關系滿足以下公式:
其中,θ為入射光線與主光軸夾角。
在上述的修正魚眼圖像的投影方法中,所述將所述索引表映射到立方體的表面上以得到所述表面在所述索引表中的位置關系的步驟包括:
將所述立方體的6個所述表面展開以得到展開平面,并在所述展開平面上建立平面坐標系時獲取所述立方體的頂點坐標;
將所述索引表劃分成與所述立方體的6個所述表面相對應的平面區(qū)域;
根據(jù)所述展開平面上的每個所述表面的所述頂點坐標和所述頂點坐標在所述索引表中相對應的點坐標計算每個所述表面上任意點在所述索引表中的坐標位置。
在上述的修正魚眼圖像的投影方法中,采用差值方法根據(jù)每個所述表面上位于對角線上的所述頂點坐標和所述位于對角線上的所述頂點坐標在所述索引表中相對應的點坐標計算每個所述表面上任意點在所述索引表中的坐標位置。
本發(fā)明還提供了一種修正魚眼圖像的投影系統(tǒng),所述系統(tǒng)包括:
變換模塊,用于將所述魚眼圖像進行投影變換得到索引表;
映射模塊,用于將所述索引表映射到立方體的表面上以得到所述表面在所 述索引表中的位置關系。
在上述的修正魚眼圖像的投影系統(tǒng)中,所述變換模塊通過等量矩形投影將所述魚眼圖像進行投影變換得到所述索引表。
在上述的修正魚眼圖像的投影系統(tǒng)中,所述魚眼圖像的像素點(xf,yf)與所述魚眼圖像的像素點(xf,yf)在所述索引表中對應的點(xp,yp)的關系滿足以下公式:
其中,θ為入射光線與主光軸夾角。
在上述的修正魚眼圖像的投影系統(tǒng)中,所述映射模塊包括:
展開單元,用于將所述立方體的6個所述表面展開以得到展開平面,并在所述展開平面上建立平面坐標系時獲取所述立方體的頂點坐標;
劃分單元,用于將所述索引表劃分成與所述立方體的6個所述表面相對應的平面區(qū)域;
計算模塊,用于根據(jù)所述展開平面上的每個所述表面的所述頂點坐標和所述頂點坐標在所述索引表中相對應的點坐標計算每個所述表面上任意點在所述索引表中的坐標位置。
在上述的修正魚眼圖像的投影系統(tǒng)中,所述計算單元采用差值方法根據(jù)每個所述表面上位于對角線上的所述頂點坐標和所述位于對角線上的所述頂點坐標在所述索引表中相對應的點坐標計算每個所述表面上任意點在所述索引表中的坐標位置。
本發(fā)明的修正魚眼圖像的投影方法及系統(tǒng)的有益效果有:
通過將魚眼圖像進行投影變換得到索引表,進而將索引表映射到立方體的表面,從而魚眼圖像中的像素點均可以在立方體中找到與其對應的像素點,即實現(xiàn)魚眼圖像到立方體的投影,應用于修正魚眼圖像時,僅需要計算和保存魚眼圖像到立方體的頂點的映射關系,即最多24個映射關系的計算,相對于投影到球體表面上時,大大減少了運算量,提高了計算效率,優(yōu)化內存的占用大小,從而提高圖像處理的效率。同時,應用于修正魚眼圖像時提高了人眼的可辨識 度。
附圖說明
下面將結合附圖及實施例對本發(fā)明作進一步說明,附圖中:
圖1是魚眼鏡頭的視角的示意圖;
圖2是本發(fā)明的修正魚眼圖像的投影方法實施例的流程圖;
圖3是本發(fā)明的將索引表映射到立方體的表面上較優(yōu)實施例的流程圖;
圖4是立方體展開后的一種展開平面的平面圖形;
圖5是索引表對應于圖4中的展開平面的劃分圖;
圖6是本發(fā)明的修正魚眼圖像的投影系統(tǒng)實施例的結構示意圖;
圖7是圖6中的映射模塊實施例的結構示意圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明通過將魚眼圖像進行投影變換得到索引表,進而將索引表映射到立方體的表面,從而魚眼圖像中的像素點均可以在立方體中找到與其對應的像素點,即實現(xiàn)魚眼圖像到立方體的投影,由于將索引表映射到立方體的表面上,因而僅需要計算立方體的頂點坐標在投影變換而得到的索引表中對應的點,提高計算效率,并且優(yōu)化內存的占用大小。
如圖2所示,是本發(fā)明的修正魚眼圖像的投影方法實施例的流程圖。在本實施例中,參考圖2,該投影方法包括以下步驟:
步驟s102中,將魚眼圖像進行投影變換得到索引表;
在此步驟中,通過equirectangular投影(等量矩形投影)將魚眼圖像進行投影變換得到索引表,根據(jù)魚眼鏡頭拍攝的魚眼圖像可知,滿足以下公式(1)和(2):
rf=2ftan(θ)(2)
在上述公式(1)和(2),rf為魚眼圖像上的像素點p到魚眼圖像中心的距離,f為有效焦距,θ為入射光線與主光軸夾角。
根據(jù)equirectangular投影可知,魚眼圖像上的像素點p與其在索引表中對應的點滿足以下公式(3):
在上述公式(3)中,魚眼圖像上的像素點p的坐標為(xf,yf),魚眼圖像上的p點在索引表中對應的點的坐標為(xp,yp)。
由上述公式(1),(2)和(3)可知,魚眼圖像的像素點p與其在索引表中對應的點的關系滿足如下述公式(4),(5)和(6):
在上述公式(6)中,image-width表示魚眼圖像的寬度,fovhorz表示魚眼圖像的水平視場角度。在本發(fā)明中,還可以通過其他投影方式將魚眼圖像進行投影變換得到索引表,例如millercylindrical投影(米勒圓柱投影)。
步驟s104中,將索引表映射到立方體的表面上以得到表面在索引表中的位置關系。
在此步驟中,將索引表對應映射到立方體的表面上,相當于把索引表與立方體的表面重疊在一起,索引表與立方體的表面一一對應。具體地,如圖3所示,是將索引表映射到立方體的表面上較優(yōu)實施例的流程圖。
參考圖3,首先,在步驟s1041中,將立方體的6個表面展開以得到展開平面,并在該展開平面上建立平面坐標系時獲取該立方體的頂點坐標。立方體的6個表面分別為內表面、外表面、左表面、右表面、上表面和下表面,展開后, 展開平面為由此6個表面構成的平面圖形,立方體的頂點坐標也即在該展開平面內,如圖4所示,是一種展開平面的平面圖形,然后以該平面圖形為平面,建立平面坐標系,獲取立方體的頂點坐標,包括內表面、外表面、左表面、右表面、上表面和下表面的頂點坐標。
隨后,在步驟s1042中,將索引表劃分成與立方體的6個表面相對應的平面區(qū)域。由于索引表與立方體的表面一一對應,立方體的6個表面均能在索引表中找到相對應的平面區(qū)域,如圖5所示,索引表被劃分成6個平面區(qū)域,內平面區(qū)域、外平面區(qū)域、左平面區(qū)域、右平面區(qū)域、上平面區(qū)域和下平面區(qū)域分別相對應于圖4中所示的立方體的內表面、外表面、左表面、右表面、上表面和下表面。
最后,在步驟s1043中,根據(jù)展開平面上每個表面的頂點坐標和頂點坐標在索引表中相對應的點坐標計算每個表面上任意點在索引表中的坐標位置。每個表面上的任意點在索引表中的坐標位置即是每個表面在索引表中的位置關系,優(yōu)選地,采用差值方法根據(jù)每個表面上位于對角線上的頂點坐標和位于對角線上的頂點坐標在索引表中相對應的點坐標計算每個表面上任意點在索引表中的坐標位置,例如,左平面的左上角的頂點坐標為(x1,y1),其在索引表中對應的點坐標為(α1,β1),右下角的頂點坐標為(x2,y2),其在索引表中對應的點坐標為(α2,β2),根據(jù)差值方法,左平面上任意點的坐標(x,y)與其在索引表中對應的點坐標(α2,β2)的關系滿足如下公式(7)和(8):
在本發(fā)明中,還可以根據(jù)每個表面上的頂點坐標通過其他方法來計算每個表面在索引表中的位置關系,可以看出,僅需要計算每個表面上的頂點坐標在索引表中的位置關系,即最多計算24個頂點到索引表的映射關系,提高了計算效率。
如圖6所示,是本發(fā)明的修正魚眼圖像的投影系統(tǒng)實施例的結構示意圖。 在本實施例中,參考圖6,該投影系統(tǒng)100包括變換模塊102和映射模塊104。
其中,變換模塊102用于將魚眼圖像進行投影變換得到索引表。具體地,變換模塊104通過equirectangular投影將魚眼圖像進行投影變換得到索引表,根據(jù)魚眼鏡頭拍攝的魚眼圖像可知,滿足上述公式(1)和(2),進而根據(jù)equirectangular投影可知,魚眼圖像上的像素點p與其在索引表中對應的點滿足上述公式(3)。進一步地,由上述公式(1),(2)和(3)可知,魚眼圖像的像素點p與其在索引表中對應的點的關系滿足如下述公式(4),(5)和(6)。在本發(fā)明中,變換模塊104還可以通過其他投影方式將魚眼圖像進行投影變換得到索引表,例如millercylindrical投影(米勒圓柱投影)。
映射模塊104用于將索引表映射到立方體的表面上以得到表面在索引表中的位置關系。將索引表對應映射到立方體的表面上,相當于把索引表與立方體的表面重疊在一起,索引表與立方體的表面一一對應。具體地,如圖7所示,是映射模塊的結構示意圖,該映射模塊104包括展開單元1041、劃分單元1042和計算單元1043。
其中,展開單元1041用于將立方體的6個表面展開以得到展開平面,并在該展開平面上建立平面坐標系時獲取該立方體的頂點坐標。立方體的6個表面分別為內表面、外表面、左表面、右表面、上表面和下表面,展開后,展開平面為由此6個表面構成的平面圖形,立方體的頂點坐標也即在該展開平面內,如圖4所示,是一種展開平面的平面圖形,然后以該平面圖形為平面,建立平面坐標系,獲取立方體的頂點坐標,包括內表面、外表面、左表面、右表面、上表面和下表面的頂點坐標。
劃分單元1042用于將索引表劃分成與立方體的6個表面相對應的平面區(qū)域。由于索引表與立方體的表面一一對應,立方體的6個表面均能在索引表中找到相對應的平面區(qū)域,如圖5所示,索引表被劃分成6個平面區(qū)域,內平面區(qū)域、外平面區(qū)域、左平面區(qū)域、右平面區(qū)域、上平面區(qū)域和下平面區(qū)域分別相對應于圖4中所示的立方體的內表面、外表面、左表面、右表面、上表面和下表面。
計算單元1043用于根據(jù)展開平面上每個表面的頂點坐標和頂點坐標在索 引表中相對應的點坐標計算每個表面上任意點在索引表中的坐標位置。每個表面上的任意點在索引表中的坐標位置即是每個表面在索引表中的位置關系,優(yōu)選地,該計算單元采用差值方法根據(jù)每個表面上位于對角線上的頂點坐標和位于對角線上的頂點坐標在索引表中相對應的點坐標計算每個表面上任意點在索引表中的坐標位置,例如,左平面的左上角的頂點坐標為(x1,y1),其在索引表中對應的點坐標為(α1,β1),右下角的頂點坐標為(x2,y2),其在索引表中對應的點坐標為(α2,β2),根據(jù)差值方法,左平面上任意點的坐標(x,y)與其在索引表中對應的點坐標(α2,β2)的關系滿足上述公式(7)和(8)。
在本發(fā)明中,還可以根據(jù)每個表面上的頂點坐標通過其他方法來計算每個表面在索引表中的位置關系,可以看出,僅需要計算每個表面上的頂點坐標在索引表中的位置關系,即最多計算24個頂點到索引表的映射關系,提高了計算效率。
綜述,本發(fā)明的修正魚眼圖像的投影方法及系統(tǒng)通過將魚眼圖像投影到立方體,應用于修正魚眼圖像時,僅需要計算和保存魚眼圖像到立方體的頂點的映射關系,進而相對于投影到球體表面上時,大大減少了運算量,提高了計算效率,優(yōu)化內存的占用大小,從而提高圖像處理的效率。同時,應用于修正魚眼圖像時提高了人眼的可辨識度。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求的保護范圍為準。