本發(fā)明屬于圖像處理技術(shù)領(lǐng)域,特別是涉及一種將鏡頭圖像展開為全景圖像的方法及裝置。
背景技術(shù):
隨著vr技術(shù)(虛擬現(xiàn)實(shí)技術(shù))的快速發(fā)展,人們對vr內(nèi)容(虛擬現(xiàn)實(shí)內(nèi)容)的需求也愈加強(qiáng)烈,全景圖像以及全景視頻是vr內(nèi)容的重要組成部分之一,目前的全景圖像一般是由一個大角度魚眼鏡頭相機(jī)拍攝,或是由幾個廣角或魚眼相機(jī)拍攝并將拍攝后的圖像拼接而成,由于廣角和魚眼相機(jī)拍攝的圖像都會帶有畸變,所以需要通過算法將廣角或魚眼相機(jī)拍攝的圖像展開為全景圖像。目前的全景圖像展開算法大多運(yùn)行在cpu(中央處理器),少數(shù)全景圖像展開算法運(yùn)行在gpu(graphicprocessingunit,圖形處理器,以下簡稱gpu),由于全景圖像展開算法計(jì)算量很大,展開一幀圖像需要的時間很長,一般都采用成本、能耗比較高,體積比較大的高性能cpu,然而cpu卻很難做到高清的或是實(shí)時的圖像展開,不能實(shí)現(xiàn)全景直播。
技術(shù)實(shí)現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明提供了一種將鏡頭圖像展開為全景圖像的方法和裝置,以實(shí)現(xiàn)快速地將鏡頭圖像展開為全景圖像,降低全景設(shè)備的成本、能耗和減小全景設(shè)備的體積。
第一方面,本發(fā)明實(shí)施例提供的一種將鏡頭圖像展開為全景圖像的方法,包括下述步驟:
步驟a,準(zhǔn)備一個原始網(wǎng)格模型,計(jì)算新貼圖坐標(biāo)值,對所述原始網(wǎng)格模型的原始貼圖坐標(biāo)值和通過計(jì)算得到的所述新貼圖坐標(biāo)值進(jìn)行坐標(biāo)值變換,生成新網(wǎng)格模型并保存;
步驟b,準(zhǔn)備一張待展開的鏡頭圖像,將所述待展開的鏡頭圖像賦予到所述步驟a中的新網(wǎng)格模型中,并通過gpu對所述新網(wǎng)格模型進(jìn)行渲染,獲取全景圖像并保存。
進(jìn)一步地,所述步驟a包括下述步驟:
步驟a1,準(zhǔn)備一個原始網(wǎng)格模型;
步驟a2,準(zhǔn)備一張用于參考的展開為全景的鏡頭圖像;
步驟a3,將所述步驟a2中的用于參考的展開為全景的鏡頭圖像賦予到所述步驟a1中的原始網(wǎng)格模型中;
步驟a4,根據(jù)所述步驟a3中用于參考的展開為全景的鏡頭圖像在拍攝時鏡頭的朝向參數(shù)、視場角、畸變參數(shù)、圖像偏心參數(shù)和位移參數(shù)計(jì)算所述用于參考的展開為全景的鏡頭圖像所在的原始網(wǎng)格模型中的每個頂點(diǎn)的新貼圖坐標(biāo)值,并將所述原始網(wǎng)格模型中每個頂點(diǎn)的原始貼圖坐標(biāo)值都變更為其所對應(yīng)的新貼圖坐標(biāo)值,生成新網(wǎng)格模型;
步驟a5,取出所述步驟a3中的用于參考的展開為全景的鏡頭圖像,并保存所述步驟a4中的新網(wǎng)格模型。
進(jìn)一步地,所述步驟b包括下述步驟:
步驟b1,準(zhǔn)備一張待展開的鏡頭圖像;
步驟b2,將所述步驟b1中的待展開的鏡頭圖像賦予到所述步驟a5的新網(wǎng)格模型中;
步驟b3,通過gpu對所述步驟b2中的新網(wǎng)格模型進(jìn)行渲染,得到與所述待展開的鏡頭圖像對應(yīng)的全景圖像;
步驟b4,對所述步驟b3中的全景圖像進(jìn)行存儲。
更進(jìn)一步地,所述原始網(wǎng)格模型的形狀可以為矩形、球體、360°環(huán)景、圓環(huán)、半球或其他平面幾何圖形或曲面立體幾何圖形。
再進(jìn)一步地,所述鏡頭圖像可以為魚眼鏡頭圖像、廣角鏡頭圖像或其他形式的鏡頭圖像。
第二方面,本發(fā)明實(shí)施例提供的一種將鏡頭圖像展開為全景圖像的裝置,包括:
新網(wǎng)格模型生成模塊,用于存放原始網(wǎng)格模型和計(jì)算新貼圖坐標(biāo)值,對所述原始網(wǎng)格模型的原始貼圖坐標(biāo)值和通過計(jì)算得到的所述新貼圖坐標(biāo)值進(jìn)行坐標(biāo)值變換,生成新網(wǎng)格模型并保存;
全景圖像獲取模塊,用于存放待展開的鏡頭圖像,將所述待展開的鏡頭圖像賦予到所述新網(wǎng)格模型生成模塊中的新網(wǎng)格模型中,并通過gpu對所述新網(wǎng)格模型進(jìn)行渲染,獲取全景圖像并保存,其與所述新網(wǎng)格模型生成模塊相連接。
進(jìn)一步地,所述新網(wǎng)格模型生成模塊包括:
原始網(wǎng)格模型存放單元,用于存放原始網(wǎng)格模型;
用于參考的展開為全景的鏡頭圖像存放單元,用于存放用于參考的展開為全景的鏡頭圖像,其與所述原始網(wǎng)格模型存放單元相連接;
鏡頭圖像第一賦予單元,用于將所述用于參考的展開為全景的鏡頭圖像存放單元中的用于參考的展開為全景的鏡頭圖像賦予到所述原始網(wǎng)格模型存放單元中的原始網(wǎng)格模型中,其與所述用于參考的展開為全景的鏡頭圖像存放單元相連接;
網(wǎng)格模型貼圖坐標(biāo)處理單元,用于根據(jù)所述鏡頭圖像第一賦予單元中用于參考的展開為全景的鏡頭圖像在拍攝時鏡頭的朝向參數(shù)、視場角、畸變參數(shù)、圖像偏心參數(shù)和位移參數(shù)計(jì)算所述用于參考的展開為全景的鏡頭圖像所在的原始網(wǎng)格模型中的每個頂點(diǎn)的新貼圖坐標(biāo)值,并將所述原始網(wǎng)格模型中每個頂點(diǎn)的原始貼圖坐標(biāo)值都變更為其所對應(yīng)的新貼圖坐標(biāo)值,生成新網(wǎng)格模型,其與所述鏡頭圖像第一賦予單元相連接;
新網(wǎng)格模型存放單元,用于取出所述鏡頭圖像第一賦予單元中的用于參考的展開為全景的鏡頭圖像并保存所述網(wǎng)格模型貼圖坐標(biāo)處理單元中生成的新網(wǎng)格模型,其與所述網(wǎng)格模型貼圖坐標(biāo)處理單元相連接。
進(jìn)一步地,所述全景圖像獲取模塊包括:
待展開的鏡頭圖像存放單元,用于存放待展開的鏡頭圖像,其與所述新網(wǎng)格模型存放單元相連接;
鏡頭圖像第二賦予單元,用于將所述待展開的鏡頭圖像存放單元中的待展開的鏡頭圖像賦予到所述新網(wǎng)格模型存放單元中的新網(wǎng)格模型內(nèi),其與所述待展開的鏡頭圖像存放單元相連接;
新網(wǎng)格模型渲染單元,用于通過gpu對所述鏡頭圖像第二賦予單元中的新網(wǎng)格模型進(jìn)行渲染,得到與所述待展開的鏡頭圖像對應(yīng)的全景圖像,其與所述鏡頭圖像第二賦予單元相連接;
全景圖像存放單元,用于將所述新網(wǎng)格模型渲染單元中的所述全景圖像進(jìn)行存儲,其與所述新網(wǎng)格模型渲染單元相連接。
更進(jìn)一步地,所述原始網(wǎng)格模型的形狀可以為矩形、球體、360°環(huán)景、圓環(huán)、半球或其他平面幾何圖形或曲面立體幾何圖形。
再進(jìn)一步地,所述鏡頭圖像可以為魚眼鏡頭圖像、廣角鏡頭圖像或其他形式的鏡頭圖像。
本發(fā)明通過將待展開的鏡頭圖像作為材質(zhì)貼圖賦予到預(yù)先計(jì)算和更改好新貼圖坐標(biāo)值的新網(wǎng)格模型中,并通過gpu來對新網(wǎng)格模型進(jìn)行渲染,可實(shí)現(xiàn)快速地將鏡頭圖像展開為全景圖像,使全景設(shè)備的成本、能耗大大降低,體積大大減小,同時,通過這種方法我們還可以實(shí)現(xiàn)高清、實(shí)時全景視頻的制作。
附圖說明
圖1為本發(fā)明實(shí)施例提供的一種將鏡頭圖像展開為全景圖像的方法的流程示意圖;
圖2為圖1中生成新網(wǎng)格模型的方法的流程示意圖;
圖3為圖1中獲取全景圖像的方法的流程示意圖;
圖4為本發(fā)明實(shí)施例提供的一個矩形原始網(wǎng)格模型;
圖5為本發(fā)明實(shí)施例提供的一張用于參考的展開為全景的魚眼圖像;
圖6為本發(fā)明實(shí)施例提供的由魚眼鏡頭相機(jī)拍攝的一張待展開的魚眼圖像;
圖7為本發(fā)明實(shí)施例提供的新的矩形網(wǎng)格模型通過渲染后得到的全景圖像;
圖8為本發(fā)明實(shí)施例提供的一種將鏡頭圖像展開為全景圖像的裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
請參閱圖1,圖1是本發(fā)明實(shí)施例提供的一種將鏡頭圖像展開為全景圖像的方法的流程示意圖,如圖1所示,將鏡頭圖像展開為全景圖像的方法包括以下步驟:
步驟s20,準(zhǔn)備一個原始網(wǎng)格模型,計(jì)算新貼圖坐標(biāo)值,對所述原始網(wǎng)格模型的原始貼圖坐標(biāo)值和通過計(jì)算得到的所述新貼圖坐標(biāo)值進(jìn)行坐標(biāo)值變換,生成新網(wǎng)格模型并保存;
步驟s21,準(zhǔn)備一張待展開的鏡頭圖像,將所述待展開的鏡頭圖像賦予到所述步驟s20中的新網(wǎng)格模型中,并通過gpu對所述新網(wǎng)格模型進(jìn)行渲染,獲取全景圖像并保存。
請參閱圖2,圖2為圖1中生成新網(wǎng)格模型的方法的流程示意圖,如圖2所示,生成新網(wǎng)格模型的方法包括下述步驟:
步驟s201,準(zhǔn)備一個原始網(wǎng)格模型;
步驟s202,準(zhǔn)備一張用于參考的展開為全景的鏡頭圖像;
步驟s203,將所述步驟s202中的用于參考的展開為全景的鏡頭圖像賦予到所述步驟s201中的原始網(wǎng)格模型中;
步驟s204,根據(jù)所述步驟s203中用于參考的展開為全景的鏡頭圖像在拍攝時鏡頭的朝向參數(shù)、視場角、畸變參數(shù)、圖像偏心參數(shù)和位移參數(shù)計(jì)算所述用于參考的展開為全景的鏡頭圖像所在的原始網(wǎng)格模型中的每個頂點(diǎn)的新貼圖坐標(biāo)值,并將所述原始網(wǎng)格模型中每個頂點(diǎn)的原始貼圖坐標(biāo)值都變更為其所對應(yīng)的新貼圖坐標(biāo)值,生成新網(wǎng)格模型;
步驟s205,取出所述步驟s203中的用于參考的展開為全景的鏡頭圖像,并保存所述步驟s204中的新網(wǎng)格模型。
請參閱圖3,圖3為圖1中獲取全景圖像的方法的流程示意圖,如圖3所示,
獲取全景圖像的方法包括下述步驟:
步驟s211,準(zhǔn)備一張待展開的鏡頭圖像;
步驟s212,將所述步驟s211中的待展開的鏡頭圖像賦予到所述步驟s205的新網(wǎng)格模型中;
步驟s213,通過gpu對所述步驟s212中的新網(wǎng)格模型進(jìn)行渲染,得到與所述待展開的鏡頭圖像對應(yīng)的全景圖像;
步驟s214,對所述步驟s213中的全景圖像進(jìn)行存儲。
以一個矩形原始網(wǎng)格模型和魚眼鏡頭相機(jī)拍攝的一張魚眼圖像為例:
首先在3dsmax或其他建模工具中制作一個長寬比為2:1的矩形原始網(wǎng)格模型,該矩形原始網(wǎng)格模型由多個正方形網(wǎng)格構(gòu)成,所以矩形原始網(wǎng)格模型的長寬分段的比也是2:1,正常情況下,模型中的網(wǎng)格越密集,展開的全景圖像質(zhì)量越高,效果越好,如圖4所示為一個長由50個正方形網(wǎng)格,寬由25個正方形網(wǎng)格構(gòu)成的矩形原始網(wǎng)格模型;
如圖5所示為一張用于參考的展開為全景的魚眼圖像;
將圖5所示的用于參考的展開為全景的魚眼圖像作為貼圖賦予到圖4所示的矩形原始網(wǎng)格模型中,該矩形原始網(wǎng)格模型中的每個網(wǎng)格都是由四個頂點(diǎn)所組成的,每個網(wǎng)格的頂點(diǎn)內(nèi)含有網(wǎng)格的位置坐標(biāo)(x,y,z)和原始貼圖坐標(biāo)(u,v),我們需要根據(jù)該用于參考的展開為全景的魚眼圖像的朝向參數(shù)、視場角、畸變參數(shù)、圖像偏心參數(shù)和位移參數(shù)等來計(jì)算該矩形原始網(wǎng)格模型中的每個頂點(diǎn)的新貼圖坐標(biāo)值,由于新貼圖坐標(biāo)值決定了該頂點(diǎn)使用魚眼圖像的哪些像素來貼到由該頂點(diǎn)組成的網(wǎng)格上,所以將該矩形原始網(wǎng)格模型中的每個頂點(diǎn)的原始貼圖坐標(biāo)值都更改為其所對應(yīng)的新貼圖坐標(biāo)值,以位置坐標(biāo)為(15,9)的頂點(diǎn)為例,該頂點(diǎn)的原始貼圖坐標(biāo)值為(0,0),通過計(jì)算,可以得出該點(diǎn)對應(yīng)的新貼圖坐標(biāo)值為(0.1,0.3),于是我們把該頂點(diǎn)的原始貼圖坐標(biāo)值(0,0)更改為新貼圖坐標(biāo)值(0.1,0.3),并將上述矩形原始網(wǎng)格模型中的每個頂點(diǎn)的新貼圖坐標(biāo)值都按照這種方法設(shè)置好,生成新的矩形網(wǎng)格模型并保存;
如圖6所示為由魚眼鏡頭相機(jī)拍攝的一張待展開的魚眼圖像,將該待展開的魚眼圖像賦予到新的矩形網(wǎng)格模型中;
通過gpu對新的矩形網(wǎng)格模型進(jìn)行渲染,得到與該魚眼圖像對應(yīng)的全景圖像并保存,如圖7所示為新的矩形網(wǎng)格模型通過渲染后得到的全景圖像。
本發(fā)明實(shí)施例中,計(jì)算和更改好新貼圖坐標(biāo)值的新網(wǎng)格模型可以保存,下次可以直接使用。
請參閱圖8,圖8是本發(fā)明實(shí)施例提供的一種將鏡頭圖像展開為全景圖像的裝置的結(jié)構(gòu)示意圖,如圖8所示,將鏡頭圖像展開為全景圖像的裝置包括:
新網(wǎng)格模型生成模塊30,用于存放原始網(wǎng)格模型和計(jì)算新貼圖坐標(biāo)值,對所述原始網(wǎng)格模型的原始貼圖坐標(biāo)值和通過計(jì)算得到的所述新貼圖坐標(biāo)值進(jìn)行坐標(biāo)值變換,生成新網(wǎng)格模型并保存;
全景圖像獲取模塊31,用于存放待展開的鏡頭圖像,將所述待展開的鏡頭圖像賦予到所述新網(wǎng)格模型生成模塊30中的新網(wǎng)格模型中,并通過gpu對所述新網(wǎng)格模型進(jìn)行渲染,獲取全景圖像并保存,其與所述新網(wǎng)格模型生成模塊30相連接。
本發(fā)明實(shí)施例中,新網(wǎng)格模型生成模塊30包括:
原始網(wǎng)格模型存放單元301,用于存放原始網(wǎng)格模型;
用于參考的展開為全景的鏡頭圖像存放單元302,用于存放用于參考的展開為全景的鏡頭圖像,其與原始網(wǎng)格模型存放單元301相連接;
鏡頭圖像第一賦予單元303,用于將所述用于參考的展開為全景的鏡頭圖像存放單元302中的用于參考的展開為全景的鏡頭圖像賦予到所述原始網(wǎng)格模型存放單元301中的原始網(wǎng)格模型中,其與所述用于參考的展開為全景的鏡頭圖像存放單元302相連接;
網(wǎng)格模型貼圖坐標(biāo)處理單元304,用于根據(jù)所述鏡頭圖像第一賦予單元303中用于參考的展開為全景的鏡頭圖像在拍攝時鏡頭的朝向參數(shù)、視場角、畸變參數(shù)、圖像偏心參數(shù)和位移參數(shù)計(jì)算所述用于參考的展開為全景的鏡頭圖像所在的原始網(wǎng)格模型中的每個頂點(diǎn)的新貼圖坐標(biāo)值,并將所述原始網(wǎng)格模型中每個頂點(diǎn)的原始貼圖坐標(biāo)值都變更為其所對應(yīng)的新貼圖坐標(biāo)值,生成新網(wǎng)格模型,其與所述鏡頭圖像第一賦予單元303相連接;
新網(wǎng)格模型存放單元305,用于取出所述鏡頭圖像第一賦予單元303中的用于參考的展開為全景的鏡頭圖像并保存所述網(wǎng)格模型貼圖坐標(biāo)處理單元304中生成的新網(wǎng)格模型,其與所述網(wǎng)格模型貼圖坐標(biāo)處理單元304相連接。
全景圖像獲取模塊31包括:
待展開的鏡頭圖像存放單元311,用于存放待展開的鏡頭圖像,其與所述新網(wǎng)格模型存放單元305相連接;
鏡頭圖像第二賦予單元312,用于將所述待展開的鏡頭圖像存放單元311中的待展開的鏡頭圖像賦予到所述新網(wǎng)格模型存放單元305中的新網(wǎng)格模型內(nèi),其與所述待展開的鏡頭圖像存放單元311相連接;
新網(wǎng)格模型渲染單元313,用于通過gpu對所述鏡頭圖像第二賦予單元312中的新網(wǎng)格模型進(jìn)行渲染,得到與所述待展開的鏡頭圖像對應(yīng)的全景圖像,其與所述鏡頭圖像第二賦予單元312相連接;
全景圖像存放單元314,用于將所述新網(wǎng)格模型渲染單元313中的所述全景圖像進(jìn)行存儲,其與所述新網(wǎng)格模型渲染單元313相連接。
本發(fā)明實(shí)施例中,原始網(wǎng)格模型和其對應(yīng)的新網(wǎng)格模型的形狀可以為矩形、球體、360°環(huán)景、圓環(huán)、半球或其他平面幾何圖形或曲面立體幾何圖形;鏡頭圖像可以為魚眼鏡頭圖像、廣角鏡頭圖像或其他形式的鏡頭圖像。
本發(fā)明通過將待展開的鏡頭圖像作為材質(zhì)貼圖賦予到預(yù)先計(jì)算和更改好新貼圖坐標(biāo)值的新網(wǎng)格模型中,并通過gpu來對新網(wǎng)格模型進(jìn)行渲染,可實(shí)現(xiàn)快速地將鏡頭圖像展開為全景圖像,使全景設(shè)備的成本、能耗大大降低,體積大大減小,同時,通過這種方法我們還可以實(shí)現(xiàn)高清、實(shí)時全景視頻的制作。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。