本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,特別是涉及一種魚眼圖轉(zhuǎn)換方法及裝置。
背景技術(shù):
近年來,隨著VR(Virtual Reality,虛擬現(xiàn)實)的高速發(fā)展,各種應(yīng)用于VR的硬件和軟件等層出不窮,其中,全景視頻VR成為技術(shù)研發(fā)和產(chǎn)品內(nèi)容創(chuàng)新的熱點,廣泛應(yīng)用于虛擬影院,全景游戲,全景教育,全景醫(yī)療,全景旅游等很多領(lǐng)域,有著廣闊的前景和巨大的經(jīng)濟價值。
目前,很多攝像設(shè)備在進行拍攝全景圖像時,只能拍攝到較小的視角,一般小于120°。但在很多時候,都需要拍攝視角更大的全景圖像,從而需要使用魚眼鏡頭或設(shè)備進行拍攝。
然而使用魚眼鏡頭或設(shè)備進行拍攝時,所拍攝的魚眼圖會發(fā)生嚴(yán)重畸變,所以如何將發(fā)生嚴(yán)重畸變的魚眼圖轉(zhuǎn)化成能夠在VR全景視頻中使用的全景圖,成為了VR領(lǐng)域重要的研究方向。
現(xiàn)有技術(shù)中,在對魚眼圖進行轉(zhuǎn)化時,必須先要將魚眼圖矯正為無畸變的平面圖,在將無畸變的平面圖轉(zhuǎn)化為全景圖。在該過程中,魚眼圖需要經(jīng)歷兩次轉(zhuǎn)化過程,使得轉(zhuǎn)化效率較低,無法實現(xiàn)對魚眼圖實時的轉(zhuǎn)換。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提供一種魚眼圖轉(zhuǎn)換方法及裝置,以實現(xiàn)直接將魚眼圖轉(zhuǎn)化被全景圖,而不需要將全景圖轉(zhuǎn)化為無畸變的平面圖。使得轉(zhuǎn)化效率提高,可以實現(xiàn)對魚眼圖實時的轉(zhuǎn)換。具體技術(shù)方案如下:
本發(fā)明實施列公開了一種魚眼圖轉(zhuǎn)換方法,包括:
獲得待轉(zhuǎn)換的魚眼圖;
將所述魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成全景圖中的坐標(biāo),并建立所述魚眼圖中像素點的坐標(biāo)與所述全景圖的坐標(biāo)之間的映射關(guān)系;
根據(jù)所述映射關(guān)系,從所述魚眼圖中采樣所述全景圖的坐標(biāo)對應(yīng)的像素,將所述魚眼圖轉(zhuǎn)換成全景圖。
可選的,所述獲得待轉(zhuǎn)換的魚眼圖,包括:獲得待轉(zhuǎn)換的雙目魚眼圖,所述雙目魚眼圖包括:左眼魚眼圖和右眼魚眼圖;
相應(yīng)的,所述將所述魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成全景圖中的坐標(biāo),并建立所述魚眼圖中像素點的坐標(biāo)與所述全景圖的坐標(biāo)之間的映射關(guān)系,包括:
將所述左眼魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成左眼全景圖中的坐標(biāo),并建立所述左眼魚眼圖中像素點的坐標(biāo)與所述左眼全景圖的坐標(biāo)之間的第一映射關(guān)系;
將所述右眼魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成右眼全景圖中的坐標(biāo),并建立所述右眼魚眼圖中像素點的坐標(biāo)與所述右眼全景圖的坐標(biāo)之間的第二映射關(guān)系;
相應(yīng)的,所述根據(jù)所述映射關(guān)系,從所述魚眼圖中采樣所述全景圖的坐標(biāo)對應(yīng)的像素,將所述魚眼圖轉(zhuǎn)換成全景圖,包括:
根據(jù)所述第一映射關(guān)系,從所述左眼魚眼圖中采樣所述左眼全景圖的坐標(biāo)對應(yīng)的像素,將所述左眼魚眼圖轉(zhuǎn)換成左眼全景圖;
根據(jù)所述第二映射關(guān)系,從所述右眼魚眼圖中采樣所述右眼全景圖的坐標(biāo)對應(yīng)的像素,將所述右眼魚眼圖轉(zhuǎn)換成右眼全景圖。
可選的,所述根據(jù)所述映射關(guān)系,從所述魚眼圖中采樣所述全景圖的坐標(biāo)對應(yīng)的像素,將所述魚眼圖轉(zhuǎn)換成所述全景圖之后,所述方法還包括:
將所述左眼全景圖和所述右眼全景圖進行拼接,構(gòu)成完整的全景圖。
可選的,所述將所述魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成全景圖中的坐標(biāo),并建立所述魚眼圖中像素點的坐標(biāo)與所述全景圖的坐標(biāo)之間的映射關(guān)系,包括:
將所述魚眼圖中像素點的坐標(biāo)轉(zhuǎn)化為無畸變平面圖的坐標(biāo),所述無畸變平面圖為所述魚眼圖校正后,構(gòu)成的不存在畸變的平面圖;
將所述無畸變平面圖的坐標(biāo)轉(zhuǎn)化為球面模型的坐標(biāo);
將所述球面模型的坐標(biāo)轉(zhuǎn)化為所述球面全景圖的坐標(biāo);
通過所述魚眼圖中像素點的坐標(biāo)轉(zhuǎn)換為所述全景圖的坐標(biāo),建立所述魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系。
可選的,所述將所述魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成全景圖中的坐標(biāo),并建立所述魚眼圖中像素點的坐標(biāo)與所述全景圖的坐標(biāo)之間的映射關(guān)系,包括:
根據(jù)預(yù)設(shè)公式,建立所述魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系,其中所述預(yù)設(shè)公式為:
x=fxx′+cx
y=fyy′+cy
所述x,所述y為所述全景圖的平面二維直角坐標(biāo),所述fx,所述fy,所述cx,所述cy為拍攝所述魚眼圖所使用的魚眼鏡頭的內(nèi)參數(shù)矩陣中的參數(shù),其中所述fx,所述fy為相機焦距,所述cx,所述cy為所述魚眼圖的坐標(biāo)系和世界坐標(biāo)系的原點的偏移量,所述x′,所述y′為中間變量,其中:
所述Hfov為預(yù)設(shè)的所述全景圖的水平視角,所述Vfov為預(yù)設(shè)的所述全景圖的垂直視角,所述n為預(yù)設(shè)的所述全景圖的寬,所述u,所述v為魚眼圖中的平面二維直角坐標(biāo),所述π為圓周率,所述R為旋轉(zhuǎn)矩陣,所述t為平移向量,所述X,所述Y,所述W,所述θ,所述xc,所述yc,所述λ,所述均為中間變量。
可選的,所述從所述魚眼圖中采樣所述全景圖的坐標(biāo)對應(yīng)的像素,包括:
使用圖像插值算法,從所述魚眼圖中采樣所述球面全景圖的坐標(biāo)對應(yīng)的像素。
本發(fā)明實施列還公開了一種魚眼圖轉(zhuǎn)換裝置,包括:
獲取模塊,用于獲得待轉(zhuǎn)換的魚眼圖;
映射模塊,用于將所述魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成全景圖中的坐標(biāo),并建立所述魚眼圖中像素點的坐標(biāo)與所述全景圖的坐標(biāo)之間的映射關(guān)系;
采樣模塊,用于根據(jù)所述映射關(guān)系,從所述魚眼圖中采樣所述全景圖的坐標(biāo)對應(yīng)的像素,將所述魚眼圖轉(zhuǎn)換成全景圖。
可選的,所述獲取模塊還用于:獲得待轉(zhuǎn)換的雙目魚眼圖,所述雙目魚眼圖包括:左眼魚眼圖和右眼魚眼圖;
相應(yīng)的,所述映射模塊,還用于:
將所述左眼魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成左眼全景圖中的坐標(biāo),并建立所述左眼魚眼圖中像素點的坐標(biāo)與所述左眼全景圖的坐標(biāo)之間的第一映射關(guān)系;
將所述右眼魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成右眼全景圖中的坐標(biāo),并建立所述右眼魚眼圖中像素點的坐標(biāo)與所述右眼全景圖的坐標(biāo)之間的第二映射關(guān)系;
相應(yīng)的,所述采樣模塊,還用于:
根據(jù)所述第一映射關(guān)系,從所述左眼魚眼圖中采樣所述左眼全景圖的坐標(biāo)對應(yīng)的像素,將所述左眼魚眼圖轉(zhuǎn)換成左眼全景圖;
根據(jù)所述第二映射關(guān)系,從所述右眼魚眼圖中采樣所述右眼全景圖的坐標(biāo)對應(yīng)的像素,將所述右眼魚眼圖轉(zhuǎn)換成右眼全景圖。
可選的,所述裝置還包括:
拼接模塊,用于將所述左眼全景圖和所述右眼全景圖進行拼接,構(gòu)成完整的全景圖。
可選的,所述映射模塊,包括:
第一映射單元,用于將所述魚眼圖中像素點的坐標(biāo)轉(zhuǎn)化為無畸變平面圖的坐標(biāo),所述無畸變平面圖為所述魚眼圖校正后,構(gòu)成的不存在畸變的平面圖;
第二映射單元,用于將所述無畸變平面圖的坐標(biāo)轉(zhuǎn)化為球面模型的坐標(biāo);
第三映射單元,用于將所述球面模型的坐標(biāo)轉(zhuǎn)化為所述球面全景圖的坐標(biāo);
第四映射單元,用于通過所述魚眼圖中像素點的坐標(biāo)轉(zhuǎn)換為所述全景圖的坐標(biāo),建立所述魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系。
可選的,所述映射模塊,包括:
第五映射單元,用于根據(jù)預(yù)設(shè)公式,建立所述魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系,其中所述預(yù)設(shè)公式為:
x=fxx′+cx
y=fyy′+cy
所述x,所述y為所述全景圖的平面二維直角坐標(biāo),所述fx,所述fy,所述cx,所述cy為拍攝所述魚眼圖所使用的魚眼鏡頭的內(nèi)參數(shù)矩陣中的參數(shù),其中所述fx,所述fy為相機焦距,所述cx,所述cy為所述魚眼圖的坐標(biāo)系和世界坐標(biāo)系的原點的偏移量,所述x′,所述y′為中間變量,其中:
所述Hfov為預(yù)設(shè)的所述全景圖的水平視角,所述Vfov為預(yù)設(shè)的所述全景圖的垂直視角,所述n為所述全景圖的寬,所述u,所述v為魚眼圖中的平面二維直角坐標(biāo),所述π為圓周率,所述R為旋轉(zhuǎn)矩陣,所述t為平移向量,所述X,所述Y,所述W,所述θ,所述xc,所述yc,所述λ,所述均為中間變量。
可選的,所述采樣模塊,具體用于:
使用圖像插值算法,從所述魚眼圖中采樣所述球面全景圖的坐標(biāo)對應(yīng)的像素。
本發(fā)明實施例提供的一種魚眼圖轉(zhuǎn)換方法及裝置,可以建立魚眼圖中像素的坐標(biāo)與球面全景圖中坐標(biāo)的對應(yīng)關(guān)系,從而直接從魚眼圖中采樣像素,構(gòu)成球面全景圖。使得存在畸變的魚眼圖,能夠轉(zhuǎn)換成VR全景視頻中可以使用的全景圖。直接從原始的魚眼圖中采樣構(gòu)成全景圖,保證了轉(zhuǎn)換的準(zhǔn)確性的同時,提高了轉(zhuǎn)換效率和轉(zhuǎn)換速度,從而能夠?qū)崿F(xiàn)對魚眼圖的實時轉(zhuǎn)化。當(dāng)然,實施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時達到以上所述的所有優(yōu)點。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法的流程圖;
圖2為本發(fā)明實施例提供的無畸變平面圖坐標(biāo)轉(zhuǎn)換為球面模型坐標(biāo)示意圖;
圖3為本發(fā)明實施例提供的球面模型示意圖;
圖4為本發(fā)明實施例提供的全景圖示意圖;
圖5為本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換裝置的結(jié)構(gòu)圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
參見圖1,圖1為本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法的流程圖,包括:
步驟101,獲得待轉(zhuǎn)換的魚眼圖。
使用魚眼鏡頭拍攝的圖像可以稱為魚眼圖,魚眼鏡頭是一種焦距為16mm或更短的并且視角接近或等于180°的鏡頭。它是一種極端的廣角鏡頭,“魚眼鏡頭”是它的俗稱。
魚眼鏡頭屬于超廣角鏡頭中的一種特殊鏡頭,它的視角力求達到或超出人眼所能看到的范圍。因此,魚眼鏡頭與人們眼中的真實世界的景象存在很大的差別,因為我們在實際生活中看見的景物是有規(guī)則的固定形態(tài),而通過魚眼鏡頭產(chǎn)生的畫面效果則超出了這一范疇。
由于魚眼鏡頭這些固有的性質(zhì),導(dǎo)致使用魚眼鏡頭拍攝出的圖像都會產(chǎn)生嚴(yán)重的畸變,帶有嚴(yán)重畸變的魚眼圖,不能直接用于制作VR全景視頻,必須將其轉(zhuǎn)換成全景圖。全景圖是指可以記錄并呈現(xiàn)全角度視角的影像圖,例如,在VR領(lǐng)域中常用的Equirectangular(等距長方形投影)格式的全景圖。Equirectangular全景圖,能夠涵蓋360度的水平視角和180度的垂直視角,從而形成了一張環(huán)繞一周全部景象的圖片。
但由于使用魚眼鏡頭生成的魚眼圖只能涵蓋180度的圖像,所以轉(zhuǎn)換成的全景圖的視角只能涵蓋180度的水平視角和180度的垂直視角,從而形成了一張環(huán)繞半周全部景象的圖片
獲取待轉(zhuǎn)換的魚眼圖可以是操作人員人為的輸入已經(jīng)存在的魚眼圖,也可以是直接獲取實時拍攝的魚眼圖。
步驟102,將魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成全景圖中的坐標(biāo),并建立魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系。
魚眼圖是一張二維的平面圖,雖然平面圖具有嚴(yán)重的畸變,但構(gòu)成圖像的每一個像素在魚眼圖中都具有一個固定的坐標(biāo)位置。
將魚眼圖中每一個像素的坐標(biāo)通過坐標(biāo)轉(zhuǎn)換,可以將魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成可以直接用于生成VR全景視頻的全景圖中的平面二維坐標(biāo)。
坐標(biāo)轉(zhuǎn)換的方法可以通過將魚眼圖中的坐標(biāo),轉(zhuǎn)換為無畸變平面圖的坐標(biāo),在轉(zhuǎn)換為球面模型的坐標(biāo),最后將球面模型的坐標(biāo)轉(zhuǎn)換成全景圖的坐標(biāo)來實現(xiàn),也可以利用本發(fā)明實施列提供的預(yù)設(shè)公式來直接進行坐標(biāo)的轉(zhuǎn)換,輸入魚眼圖中的坐標(biāo),就可以得到對應(yīng)的全景圖中的坐標(biāo)。其中,球面模型可以與全景圖相互轉(zhuǎn)換,是全景圖的二維平面坐標(biāo)轉(zhuǎn)化為極坐標(biāo)從而形成的模型。無畸變平面圖是魚眼圖經(jīng)過校正后,得到的圖像不存在畸變的平面圖。
完成坐標(biāo)的轉(zhuǎn)換后,每一個魚眼圖中像素的坐標(biāo)對應(yīng)一個全景圖中的坐標(biāo),從而可以建立魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系。
步驟103,根據(jù)映射關(guān)系,從魚眼圖中采樣全景圖的坐標(biāo)對應(yīng)的像素,將魚眼圖轉(zhuǎn)換成全景圖。
按照已經(jīng)建立的映射關(guān)系,可以從魚眼圖中,按照全景圖中的坐標(biāo)進行采樣像素。全景圖中每一個坐標(biāo)可以在魚眼圖中得到對應(yīng)坐標(biāo)所表示的像素,從而進行采樣。全景圖的所有的坐標(biāo)都完成采樣后,就可以得到由魚眼圖所轉(zhuǎn)換而來的含有像素的全景圖。這樣的全景圖就可以直接用于制作VR全景視頻。
本發(fā)明實施列中,通過將魚眼圖的坐標(biāo)轉(zhuǎn)換成全景圖的坐標(biāo),并建立坐標(biāo)的映射關(guān)系,根據(jù)該映射關(guān)系,從魚眼圖中進行像素的采樣,從而構(gòu)成全景圖,實現(xiàn)魚眼圖轉(zhuǎn)換成全景圖。使得不需要先將魚眼圖矯正成無畸變的平面圖后,再轉(zhuǎn)換成全景圖。減少了中間的步驟和環(huán)節(jié),提高了轉(zhuǎn)換效率,從而能夠?qū)崿F(xiàn)對實時獲得的魚眼圖進行實時的轉(zhuǎn)換。
可選的,本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法中,獲得待轉(zhuǎn)換的魚眼圖,包括:獲得待轉(zhuǎn)換的雙目魚眼圖,雙目魚眼圖包括:左眼魚眼圖和右眼魚眼圖。
在實際應(yīng)用中,通常采用雙目攝像機進行景物圖像的拍攝。雙目攝像機使用兩個魚眼鏡頭進行拍攝,從而可以得到兩個魚眼鏡頭拍攝的兩張魚眼圖,稱為雙目魚眼圖。雙目魚眼圖可以包括左眼魚眼圖和右眼魚眼圖。
相應(yīng)的,將魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成全景圖中的坐標(biāo),并建立魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系,包括:
將左眼魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成左眼全景圖中的坐標(biāo),并建立左眼魚眼圖中像素點的坐標(biāo)與左眼全景圖的坐標(biāo)之間的第一映射關(guān)系。
將右眼魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成右眼全景圖中的坐標(biāo),并建立右眼魚眼圖中像素點的坐標(biāo)與右眼全景圖的坐標(biāo)之間的第二映射關(guān)系。
按照前面所述的魚眼圖轉(zhuǎn)換為全景圖的方法,分別將左眼魚眼圖和右眼魚眼圖中每一個像素的坐標(biāo)進行坐標(biāo)轉(zhuǎn)換,分別轉(zhuǎn)換成左眼全景圖和右眼全景圖的平面二維坐標(biāo),并分別建立左眼魚眼圖中像素點的坐標(biāo)與左眼全景圖的坐標(biāo)之間的第一映射關(guān)系和右眼魚眼圖中像素點的坐標(biāo)與右眼全景圖的坐標(biāo)之間的第二映射關(guān)系。
相應(yīng)的,根據(jù)映射關(guān)系,從魚眼圖中采樣全景圖的坐標(biāo)對應(yīng)的像素,將魚眼圖轉(zhuǎn)換成全景圖,包括:
根據(jù)第一映射關(guān)系,從左眼魚眼圖中采樣左眼全景圖的坐標(biāo)對應(yīng)的像素,將左眼魚眼圖轉(zhuǎn)換成左眼全景圖。
根據(jù)第二映射關(guān)系,從右眼魚眼圖中采樣右眼全景圖的坐標(biāo)對應(yīng)的像素,將右眼魚眼圖轉(zhuǎn)換成右眼全景圖。
同樣,與魚眼圖轉(zhuǎn)換為全景圖的方法相同,分別通過第一映射關(guān)系和第二映射關(guān)系,從左眼魚眼圖和右眼魚眼圖中,分別按照左眼全景圖和右眼全景圖中的坐標(biāo)進行采樣像素,從而分別構(gòu)成含有像素的左眼全景圖和右眼全景圖。實現(xiàn)左眼魚眼圖和右眼魚眼圖轉(zhuǎn)換為可以直接用于VR全景視頻左眼全景圖和右眼全景圖。
本發(fā)明實施列中,不僅可以對單個的魚眼圖進行轉(zhuǎn)換,也可以對由雙目攝像機得到的雙目魚眼圖進行轉(zhuǎn)換,擴大了本發(fā)明實施列應(yīng)用的范圍,雙目魚眼圖轉(zhuǎn)換得到到左眼魚眼圖和右眼全景圖,可以直接通過VR設(shè)備,分別對應(yīng)用戶的左眼和右眼進行呈現(xiàn),也可以生成針對用戶左眼和右眼的VR全景視頻,并通過通過VR設(shè)備進行呈現(xiàn),提高了用戶體驗。
可選的,本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法中,根據(jù)映射關(guān)系,從魚眼圖中采樣全景圖的坐標(biāo)對應(yīng)的像素,將魚眼圖轉(zhuǎn)換成全景圖之后,方法還包括:
將左眼全景圖和右眼全景圖進行拼接,構(gòu)成完整的全景圖。
當(dāng)進行雙目魚眼圖進行轉(zhuǎn)換時,最終會得到兩張全景圖,分別為左眼全景圖和右眼全景圖。需要將兩張全景圖進行拼接,構(gòu)成一張完整的全景圖。拼接可以是上下進行拼接,也可以是左右進行拼接。
具體的,進行圖像拼接的方法,在現(xiàn)有技術(shù)中已經(jīng)有很多成熟的方式??梢愿鶕?jù)需要進行靈活的選擇,此處不再贅述。
本發(fā)明實施列中,將由左眼魚眼圖和右眼魚眼圖分別轉(zhuǎn)化得到的左眼全景圖和右眼全景圖進行拼接,進而得到了更加完整的全景圖,有利于全景圖的使用,提高了用戶在觀看全景圖或全景圖構(gòu)成的VR全景視頻時的用戶體驗。
可選的,本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法中,將所述魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成全景圖中的坐標(biāo),并建立所述魚眼圖中像素點的坐標(biāo)與所述全景圖的坐標(biāo)之間的映射關(guān)系,包括:
第一步,將魚眼圖中像素點的坐標(biāo)轉(zhuǎn)化為無畸變平面圖的坐標(biāo),無畸變平面圖為魚眼圖校正后,構(gòu)成的不存在畸變的平面圖。
拍攝魚眼圖所使用的魚眼鏡頭,具有固定的內(nèi)參數(shù)矩陣以及畸變參數(shù)(k1,k2,k3,k4),其中fx,fy為相機焦距,cx,cy為魚眼圖的坐標(biāo)系和世界坐標(biāo)系的原點的偏移量。這些參數(shù)是魚眼鏡頭固有的參數(shù),當(dāng)魚眼鏡頭生產(chǎn)出來時,這些參數(shù)就已經(jīng)確定,在現(xiàn)有技術(shù)中,有許多可以得到這些參數(shù)的方法,具體不再贅述。
使用魚眼鏡頭的攝像機或照相機還具有外參數(shù)矩陣,包括旋轉(zhuǎn)矩陣R和平移向量t,這些參數(shù)為攝像機或照相機固有的參數(shù),用來描述一個世界坐標(biāo)系下的坐標(biāo),與攝像機或照相機坐標(biāo)系的坐標(biāo)的轉(zhuǎn)換關(guān)系。具體的,世界坐標(biāo)系坐標(biāo)與攝像機或照相機坐標(biāo)系坐標(biāo)轉(zhuǎn)換關(guān)系可以用公式一來描述,公式一為:
其中,(X,Y,Z)為世界坐標(biāo)系中的坐標(biāo),(x,y,z)為相機坐標(biāo)系中的坐標(biāo),R為旋轉(zhuǎn)矩陣,t為平移向量。旋轉(zhuǎn)矩陣R和平移向量t為攝像機或照相機固有的參數(shù),可以利用現(xiàn)有技術(shù)直接得到,具體獲得方法此處不再贅述。
魚眼圖中像素點的坐標(biāo)可以通過公式二轉(zhuǎn)化為無畸變平面圖的坐標(biāo),其中,公式二包括:
u=fxx″+cx
v=fyy″+cy
上述公式二中,u,v為無畸變平面圖的坐標(biāo),fx,fy,cx,cy為拍攝魚眼圖所使用的魚眼鏡頭的內(nèi)參數(shù)矩陣中的參數(shù),其中fx,fy為相機焦距,cx,cy為魚眼圖的坐標(biāo)系和世界坐標(biāo)系的原點的偏移量,x″,y″為中間變量,其中:
上述公式中,(x,y,z)為相機坐標(biāo)系中的坐標(biāo),(k1,k2,k3,k4)為拍攝魚眼圖所使用的魚眼鏡頭的畸變參數(shù),θ為中間變量。
需要注意的是,現(xiàn)有技術(shù)中,需要將魚眼圖轉(zhuǎn)化為無畸變平面圖,而本發(fā)明實施例中的步驟只是進行坐標(biāo)的轉(zhuǎn)化,不需要將魚眼圖轉(zhuǎn)化為無畸變平面圖,本步驟中所描述的無畸變平面圖,只是邏輯上虛擬的無畸變平面圖,而不是真實存在的無畸變平面圖。
第二步,將無畸變平面圖的坐標(biāo)轉(zhuǎn)化為球面模型的坐標(biāo)。
球面模型可以認(rèn)為是攝像機或相機處于球心位置,拍攝360度水平視角和180度垂直視角,從而可以得到四周所有景物的圖像。但本發(fā)明實施例中,并沒有將圖片轉(zhuǎn)化成球形模型,而只是對圖像的坐標(biāo)進行了轉(zhuǎn)換,所以本發(fā)明實施列中的球面模型可以是邏輯上虛擬的球面模型。
由于魚眼圖中涵蓋了180度水平視角的影像,所以球面模型只有半個球面。
參見圖2,圖2為本發(fā)明實施例提供的無畸變平面圖坐標(biāo)轉(zhuǎn)換為球面模型坐標(biāo)示意圖。
無畸變平面圖202的坐標(biāo)可以通過公式三轉(zhuǎn)化為球面模型201的坐標(biāo),其中,公式三包括:
其中,λ表示球面模型201的坐標(biāo)中的經(jīng)度,φ表示球面模型201的坐標(biāo)中的緯度,u,v為無畸變平面圖202的平面二維直角坐標(biāo),r表示球面模型的半徑,n′表示無畸變平面圖202的寬,即坐標(biāo)u的最大值。
第三步,將球面模型的坐標(biāo)轉(zhuǎn)化為全景圖的坐標(biāo)。
參見圖3,圖3為本發(fā)明實施例提供的球面模型示意圖。其中,點q為球面模型表面的任一點,λ表示球面模型的坐標(biāo)中的經(jīng)度,φ表示球面模型的坐標(biāo)中的緯度。
參見圖4,圖4為本發(fā)明實施例提供的全景圖示意圖。其中,m為全景圖的高,n為全景圖的寬。全景圖中的每一個坐標(biāo)對應(yīng)一個像素。
球面模型的坐標(biāo)與全景圖的坐標(biāo)可以通過公式四進行相互轉(zhuǎn)換,其中,公式四為:
n=πr
其中,x,y為全景圖中像素的平面二維直角坐標(biāo),m為全景圖的高,n為全景圖的寬,λ表示球面模型的坐標(biāo)中的經(jīng)度,φ表示球面模型的坐標(biāo)中的緯度,π為圓周率,r表示球面模型的半徑,m可以根據(jù)需要得到的全景圖的高,進行人為設(shè)定。
第四步,通過魚眼圖中像素點的坐標(biāo)轉(zhuǎn)換為全景圖的坐標(biāo),建立魚眼圖中像素點的坐標(biāo)與球面全景圖的坐標(biāo)之間的映射關(guān)系。
根據(jù)公式一至公式五,可以分步驟的將魚眼圖中像素點的坐標(biāo)轉(zhuǎn)換為全景圖的坐標(biāo),并建立起魚眼圖中像素點的坐標(biāo)與球面全景圖的坐標(biāo)之間的映射關(guān)系。
當(dāng)待轉(zhuǎn)換的魚眼圖為雙目魚眼圖時,則需要分別獲得拍攝左眼魚眼圖和右眼魚眼圖的魚眼鏡頭的內(nèi)參數(shù)矩陣和畸變參數(shù),并分別獲得旋轉(zhuǎn)矩陣和平移向量從而進行坐標(biāo)的轉(zhuǎn)化,并建立左眼魚眼圖中像素點的坐標(biāo)與左眼全景圖的坐標(biāo)之間的第一映射關(guān)系,以及右眼魚眼圖中像素點的坐標(biāo)與右眼全景圖的坐標(biāo)之間的第二映射關(guān)系。
本發(fā)明實施列中,通過分步驟的坐標(biāo)轉(zhuǎn)換,使得坐標(biāo)轉(zhuǎn)換時可以根據(jù)需要調(diào)整每一步的具體參數(shù),可以得到多樣化的結(jié)果,例如,當(dāng)將魚眼圖的坐標(biāo)轉(zhuǎn)化為球面模型的坐標(biāo)后,可以根據(jù)球面模型的坐標(biāo)的特點對球面模型進行壓縮或放大,從而在轉(zhuǎn)化魚眼圖的同時,能夠?qū)崿F(xiàn)對魚眼圖的壓縮或放大,具體的,根據(jù)球面模型的坐標(biāo)的特點對球面模型進行壓縮或放大,可以實現(xiàn)現(xiàn)有的各種圖樣壓縮或放大的方法,在此不再進行贅述。
可選的,本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法中,將所述魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成全景圖中的坐標(biāo),并建立所述魚眼圖中像素點的坐標(biāo)與所述全景圖的坐標(biāo)之間的映射關(guān)系,包括:
根據(jù)預(yù)設(shè)公式,建立魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系,其中預(yù)設(shè)公式為:
x=fxx′+cx
y=fyy′+cy
x,y為全景圖的平面二維直角坐標(biāo),fx,fy,cx,cy為拍攝魚眼圖所使用的魚眼鏡頭的內(nèi)參數(shù)矩陣中的參數(shù),其中fx,fy為相機焦距,cx,cy為魚眼圖的坐標(biāo)系和世界坐標(biāo)系的原點的偏移量,x′,y′為中間變量,其中:
上述公式中,Hfov是預(yù)設(shè)的全景圖的水平視角,Vfov是預(yù)設(shè)的全景圖的垂直視角,Hfov和Vfov為拍攝魚眼圖所使用相機的固有參數(shù),n為所述全景圖的寬,u,v是魚眼圖中的平面二維直角坐標(biāo),π為圓周率,R為旋轉(zhuǎn)矩陣,t為平移向量,X,Y,W,θ,xc,yc,λ,均為中間變量。
通過預(yù)設(shè)公式,可以直接將魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成全景圖中的坐標(biāo),并建立魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系。輸入魚眼圖中的坐標(biāo)就能夠得到對應(yīng)的全景圖中的坐標(biāo)。
在進行雙目魚眼圖的轉(zhuǎn)換時,需要分別獲得拍攝左眼魚眼圖和右眼魚眼圖的魚眼鏡頭的內(nèi)參數(shù)矩陣和畸變參數(shù),并分別獲得旋轉(zhuǎn)矩陣和平移向量從而進行坐標(biāo)的轉(zhuǎn)化,例如左眼魚眼圖的旋轉(zhuǎn)矩陣和平移向量為右眼魚眼圖的旋轉(zhuǎn)矩陣和平移向量為R=R3x3,其中,R3x3表示R是一個3x3的矩陣,這個矩陣代表了兩個相機或鏡頭的圖像坐標(biāo)的旋轉(zhuǎn)關(guān)系。
表示兩個相機或鏡頭的對應(yīng)的圖像坐標(biāo)的平移關(guān)系,具體的,R3x3矩陣和tx,ty,tz這些參數(shù),在確定兩個相機或鏡頭的拍攝位置以及相機或鏡頭的型號后,就可以直接獲得,獲得方法屬于現(xiàn)有技術(shù),此處不再贅述。
在本發(fā)明實施例中,通過預(yù)設(shè)公式進行坐標(biāo)的變換??梢钥焖贉?zhǔn)確的進行坐標(biāo)的轉(zhuǎn)換,從而能夠滿足對魚眼圖進行實時轉(zhuǎn)換的需要。
可選的,本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法中,從魚眼圖中采樣球面全景圖的坐標(biāo)對應(yīng)的像素,包括:
使用圖像插值算法,從魚眼圖中采樣球面全景圖的坐標(biāo)對應(yīng)的像素。
在進行像素采樣的過程中,可以使用圖像插值算法來進行采樣,得到最后的全景圖像。圖像插值算法是一種美化圖像和提高圖像質(zhì)量的圖形處理技術(shù),包括雙線性插值算法和樣板條插值算法等多種插值算法。圖像插值算法是利用已知鄰近像素點的灰度值、顏色值來產(chǎn)生未知像素點的灰度值、顏色值。對于本發(fā)明實施例,在得到全景圖像的坐標(biāo)映射關(guān)系以后,就可以利用圖像插值算法獲得所有像素的灰度值和顏色值,從而得到全景圖。
具體的,各種不同的圖像插值算法屬于現(xiàn)有技術(shù),此處不再贅述。
參見圖5,圖5為本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換裝置的結(jié)構(gòu)圖,包括:
獲取模塊501,用于獲得待轉(zhuǎn)換的魚眼圖;
映射模塊502,用于將魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成全景圖中的坐標(biāo),并建立魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系;
采樣模塊503,用于根據(jù)映射關(guān)系,從魚眼圖中采樣全景圖的坐標(biāo)對應(yīng)的像素,將魚眼圖轉(zhuǎn)換成全景圖。
本發(fā)明實施列中,通過將魚眼圖的坐標(biāo)轉(zhuǎn)換成全景圖的坐標(biāo),并建立坐標(biāo)的映射關(guān)系,根據(jù)該映射關(guān)系,從魚眼圖中進行像素的采樣,從而構(gòu)成全景圖,實現(xiàn)魚眼圖轉(zhuǎn)換成全景圖。使得不需要先將魚眼圖矯正成無畸變的平面圖后,再轉(zhuǎn)換成全景圖。減少了中間的步驟和環(huán)節(jié),提高了轉(zhuǎn)換效率,從而能夠?qū)崿F(xiàn)對實時獲得的魚眼圖進行實時的轉(zhuǎn)換。
本發(fā)明實施例的裝置是應(yīng)用上述魚眼圖轉(zhuǎn)換方法的裝置,則上述魚眼圖轉(zhuǎn)換方法的所有實施例均適用于該裝置,且均能達到相同或相似的有益效果。
可選的,本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法中,獲取模塊501還用于:獲得待轉(zhuǎn)換的雙目魚眼圖,雙目魚眼圖包括:左眼魚眼圖和右眼魚眼圖;
相應(yīng)的,映射模塊502,還用于:
將左眼魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成左眼全景圖中的坐標(biāo),并建立左眼魚眼圖中像素點的坐標(biāo)與左眼全景圖的坐標(biāo)之間的第一映射關(guān)系;
將右眼魚眼圖中每一個像素的坐標(biāo)轉(zhuǎn)換成右眼全景圖中的坐標(biāo),并建立右眼魚眼圖中像素點的坐標(biāo)與右眼全景圖的坐標(biāo)之間的第二映射關(guān)系;
相應(yīng)的,采樣模塊503,還用于:
根據(jù)第一映射關(guān)系,從左眼魚眼圖中采樣左眼全景圖的坐標(biāo)對應(yīng)的像素,將左眼魚眼圖轉(zhuǎn)換成左眼全景圖;
根據(jù)第二映射關(guān)系,從右眼魚眼圖中采樣右眼全景圖的坐標(biāo)對應(yīng)的像素,將右眼魚眼圖轉(zhuǎn)換成右眼全景圖。
可選的,本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法中,裝置還包括:
拼接模塊,用于將左眼全景圖和右眼全景圖進行拼接,構(gòu)成完整的全景圖。
可選的,本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法中,映射模塊502,包括:
第一映射單元,用于將魚眼圖中像素點的坐標(biāo)轉(zhuǎn)化為無畸變平面圖的坐標(biāo),無畸變平面圖為魚眼圖校正后,構(gòu)成的不存在畸變的平面圖;
第二映射單元,用于將無畸變平面圖的坐標(biāo)轉(zhuǎn)化為球面模型的坐標(biāo);
第三映射單元,用于將球面模型的坐標(biāo)轉(zhuǎn)化為球面全景圖的坐標(biāo);
第四映射單元,用于通過魚眼圖中像素點的坐標(biāo)轉(zhuǎn)換為全景圖的坐標(biāo),建立魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系。
可選的,本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法中,映射模塊502,包括:
第五映射單元,用于根據(jù)預(yù)設(shè)公式,建立魚眼圖中像素點的坐標(biāo)與全景圖的坐標(biāo)之間的映射關(guān)系,其中預(yù)設(shè)公式為:
x=fxx′+cx
y=fyy′+cy
x,y為全景圖的平面二維直角坐標(biāo),fx,fy,cx,cy為拍攝魚眼圖所使用的魚眼鏡頭的內(nèi)參數(shù)矩陣中的參數(shù),其中fx,fy為相機焦距,cx,cy為魚眼圖的坐標(biāo)系和世界坐標(biāo)系的原點的偏移量,x′,y′為中間變量,其中:
Hfov為預(yù)設(shè)的全景圖的水平視角,Vfov為預(yù)設(shè)的全景圖的垂直視角,n為預(yù)設(shè)的全景圖的寬,u,v為魚眼圖中的平面二維直角坐標(biāo),π為圓周率,R為旋轉(zhuǎn)矩陣,t為平移向量,X,Y,W,θ,xc,yc,λ,均為中間變量。
可選的,本發(fā)明實施例提供的魚眼圖轉(zhuǎn)換方法中,采樣模塊503,具體用于:
使用圖像插值算法,從魚眼圖中采樣球面全景圖的坐標(biāo)對應(yīng)的像素。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。