胡遠(yuǎn)艷,尚苗星,何紹勇
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
一種基于全景圖像的字幕添加系統(tǒng)
胡遠(yuǎn)艷,尚苗星,何紹勇
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)
對(duì)立方體全景圖、魚(yú)眼圖和球形全景圖的生成算法進(jìn)行研究,設(shè)計(jì)這三種全景圖之間相互轉(zhuǎn)換的算法,同時(shí)設(shè)計(jì)向全景圖添加文字的算法。該系統(tǒng)實(shí)現(xiàn)立方體全景圖、魚(yú)眼圖和球形全景圖之間相互轉(zhuǎn)化的功能,實(shí)現(xiàn)向全景圖所構(gòu)建的三維空間里的任意位置任意方向添加字幕的功能,字體、字號(hào)、顏色是可以根據(jù)系統(tǒng)選擇的,可導(dǎo)入字幕文件,根據(jù)字幕文件格式自動(dòng)向幀序列圖像里添加文字。
立方體全景圖;魚(yú)眼圖;球形全景圖;投影;映射
全景圖是計(jì)算機(jī)圖像處理學(xué)界一個(gè)新穎的探索性研究課題,它指的是基于圖像的水平360°及上下文空間的圖形組織環(huán)境,它是一種全新的圖像信息、組織模式,可以表達(dá)完整的周?chē)h(huán)境信息,相當(dāng)于人們從一個(gè)固定點(diǎn)向四周轉(zhuǎn)一圈所看到的景象。全景圖對(duì)于觀察者而言是建立在圖像上立體的多角度的圖像環(huán)境[1]。
全景圖是構(gòu)成虛擬環(huán)境的基本單位,是描繪某個(gè)視點(diǎn)上周?chē)h(huán)境的圖像。根據(jù)全景外在表現(xiàn)形式可以分為立方體全景、球面全景和圓柱形全景三種模式。不同模式的全景圖的存取難易程度均有很大差異。
本系統(tǒng)除了基于傳統(tǒng)的立方體全景圖和球形全景圖魚(yú)眼全景,還使用了一種新的全景圖即魚(yú)眼圖,魚(yú)眼鏡頭是一種超廣角鏡頭,它能夠提供大約180°的視野范圍。利用魚(yú)眼鏡頭拍攝照片,可以一次將180°或更大范圍內(nèi),即一個(gè)半球范圍內(nèi)的景物,拍攝到一張照片上,兩張魚(yú)眼圖片可以合成一個(gè)360°的全景圖[2]。
本系統(tǒng)提供了一種方便快捷的方法向立方體全景、魚(yú)眼圖及球面全景里添加文字,而且還提供了立方體全景向魚(yú)眼圖和球形全景轉(zhuǎn)換、魚(yú)眼圖向立方體全景和球形全景轉(zhuǎn)換、球形全景向立方體全景和魚(yú)眼圖轉(zhuǎn)換的功能。
1.1 全景圖之間轉(zhuǎn)換的實(shí)現(xiàn)
(1)立方體全景圖向魚(yú)眼圖和球形全景圖轉(zhuǎn)換
立方體全景圖,由六個(gè)平面投影圖像組成,本系統(tǒng)中使用六張圖片分別表示前平面圖像、后平面圖像、左平面圖像、右平面圖像、上平面圖像、下平面圖像。立方體全景圖允許觀察者在水平方向上進(jìn)行360°的漫游和垂直方向上進(jìn)行180°的漫游。根據(jù)六張平面圖像來(lái)建立一個(gè)立方體空間模型,立方體投影變換及其反變換算法的核心是投影變換公式[3]。為此我們建立三維空間直角坐標(biāo)系,如圖1所示,O為三維空間直角坐標(biāo)系的原點(diǎn),OX軸正方向?yàn)樗较蛴?,OZ軸正方向?yàn)榇怪敝赶蛏?,OY軸正方向?yàn)榇怪盭OZ面由外向里。原始立方體由六個(gè)面組成,立方體的中心點(diǎn)為三維空間觀察坐標(biāo)系原點(diǎn)(即視點(diǎn)),a為立方體的邊長(zhǎng)(即平面圖像的寬),坐標(biāo)系坐標(biāo)單位是以像素為單位。
六個(gè)面的坐標(biāo)方程分別為:前平面:{Y=a/2,(-a/ 2≤X,Z≤a/2)},后平面:{Y=-a/2,(-a/2≤X,Z≤a/2)},左平面:{X=-a/2,(-a/2≤Y,Z≤a/2)},右平面:{X=a/2,(-a/2≤Y,Z≤a/2)},上平面:{Z=a/2,(-a/2≤X,Y≤a/ 2)},下平面:{Z=-a/2,(-a/2≤X,Y≤a/2)}。
圖1 立方體6個(gè)面和各頂點(diǎn)
平面圖像視平面坐標(biāo)向觀察坐標(biāo)系映射,設(shè)視平面坐標(biāo)為(u,v),對(duì)應(yīng)的觀察系坐標(biāo)為(X,Y,Z),其中0≤u<a,0≤v<a。立方體全景圖采用六幅圖像來(lái)存儲(chǔ)圖像的數(shù)據(jù)。前平面圖像任意像素點(diǎn)(u,v)按照映射關(guān)系Y=a/2,X=u-a/2,Z=a/2-v映射于觀察坐標(biāo)系中前平面中點(diǎn)(X,Y,Z),后平面圖像任意像素點(diǎn)(u,v)按照映射關(guān)系Y=-a/2,X=u-a/2,Z=v-a/2映射于觀察坐標(biāo)系中后平面中點(diǎn)(X,Y,Z),左平面圖像任意像素點(diǎn)(u,v)按照映射關(guān)系X=-a/2,Y=u-a/2,Z=a/2-v映射于觀察坐標(biāo)系中左平面中點(diǎn)(X,Y,Z),右平面圖像任意像素點(diǎn)(u,v)按照映射關(guān)系X==a/2,Y=a/2-u,Z=a/2-v映射于觀察坐標(biāo)系中右平面中點(diǎn)(X,Y,Z),上平面圖像任意像素點(diǎn)(u,v)按照映射關(guān)系Z=a/2,X=u-a/2,Y=v-a/2映射于觀察坐標(biāo)系中上平面中點(diǎn)(X,Y,Z),下平面圖像任意像素點(diǎn)(u,v)按照映射關(guān)系Z=-a/2,X=u-a/2,Y=a/2-v映射于觀察坐標(biāo)系中下平面中點(diǎn)(X,Y,Z)。
圖2 球坐標(biāo)系
在觀察坐標(biāo)系中建立球坐標(biāo)系如圖2所示,球坐標(biāo)系的原點(diǎn)是觀察坐標(biāo)系的原點(diǎn)O,過(guò)P點(diǎn)做PS垂直于XOY平面且與平面交于點(diǎn)S,方位角θ為OX軸沿逆時(shí)針旋轉(zhuǎn)到OS所轉(zhuǎn)過(guò)的角(-π≤θ≤π),俯仰角σ為OP沿逆時(shí)針旋轉(zhuǎn)到OS所轉(zhuǎn)過(guò)的角(-π/2≤σ≤π/2),r為OP的距離,球面坐標(biāo)P在球坐標(biāo)系用(θ,σ,r)表示。三維空間中一點(diǎn)P的球坐標(biāo)(θ,σ,r)與三維空間直角坐標(biāo)(x,y,z)的映射關(guān)系有:z=sin(σ)*r,x=cos(θ)* cos(σ)*r,y=sin(θ)*cos(σ)*r,坐標(biāo)系坐標(biāo)單位是以像素為單位。
球面全景圖生成過(guò)程。球形全景圖表示水平視角π到-π和垂直視角π/2到-π/2的空間范圍,球形全景圖中每一行像素點(diǎn)都具有相同的垂直視角即俯仰角,每一列像素點(diǎn)具有相同的水平視角即方位角,可以按照方位角從π到-π和俯仰角從π/2到-π/2方式等間距順序存儲(chǔ)[4]。具體計(jì)算步驟如下:
設(shè)球面全景圖像的寬為L(zhǎng),則它的長(zhǎng)為2L,球面半徑R=L/π。球面全景圖像任意像素G(m,n)(0≤m<2L且0≤n<L),首先可計(jì)算出G點(diǎn)表示的俯仰角和方位角,P的俯仰角σ=(L/2-n)*π/L,方位角θ=(L-m)*π/L;其次根據(jù)G點(diǎn)的球坐標(biāo)(θ,σ,R)計(jì)算出P的三維空間直角坐標(biāo)(x,y,z),z=sin(σ)*R,y=sin(θ)cos(σ)*R,x= cos(θ)cos(σ)*R;然后根據(jù)P點(diǎn)空間直角坐標(biāo)(x,y,z)求出立方體表面與之相映射對(duì)應(yīng)的點(diǎn)M;最后將M點(diǎn)像素值賦值給全景圖像像素點(diǎn)G。
圖3 魚(yú)眼圖生成模型
標(biāo)準(zhǔn)魚(yú)眼圖生成過(guò)程。立方體全景圖像可以轉(zhuǎn)換成兩張魚(yú)眼圖像。魚(yú)眼鏡頭的成像原理采用了等距成像模型,建立魚(yú)眼圖成像模型[5],如圖3所示,PG`垂直于YOZ平面,點(diǎn)G`在YOZ平面上,P為G`P與半球面的交點(diǎn)。具體計(jì)算步驟如下:
魚(yú)眼圖像的寬為2R,則圓形魚(yú)眼半徑為R。魚(yú)眼圖像上的像素點(diǎn)G(u,v)與觀察坐標(biāo)系中以半徑為R球面上像素點(diǎn)P(x,y,z)存在一種映射關(guān)系。
(2)魚(yú)眼圖向立方體全景圖和球形全景圖轉(zhuǎn)換
一張魚(yú)眼圖像可以表示水平視角180°,垂直180°的范圍內(nèi)的所有景物,即兩張魚(yú)眼圖像可以表示水平視角360°和垂直180°的范圍的所有景物。建立魚(yú)眼圖像生成模型,如圖3所示,兩張魚(yú)眼圖像一張?jiān)谟^察坐標(biāo)系中表示水平視角為從π到0范圍內(nèi)的景物,此魚(yú)眼圖稱(chēng)為前景魚(yú)眼圖,另外一張?jiān)谟^察坐標(biāo)系中表示水平視角從0到-π范圍內(nèi)的景物,此魚(yú)眼圖像稱(chēng)為后景魚(yú)眼圖。本系統(tǒng)所使用的魚(yú)眼圖都為標(biāo)準(zhǔn)魚(yú)眼圖,即圓形魚(yú)眼圖且魚(yú)眼中心就是圖像的中心點(diǎn)。
魚(yú)眼圖轉(zhuǎn)換成球面全景圖算法。球面全景圖左邊一半表示前半球全景(即水平視角θ從π到0的范圍),稱(chēng)為前半球面全景圖,球面全景圖右邊一半表示前半球全景(即θ從0到-π的范圍),稱(chēng)為后半球面全景圖。設(shè)球面全景圖寬為L(zhǎng),則其長(zhǎng)為2L。設(shè)球面全景圖像中的任意像素點(diǎn)Q(m,n)(其中0≤m<2L,0≤n<L),則可計(jì)算出Q點(diǎn)球坐標(biāo)系坐標(biāo)(θ,σ,r),θ=(L-X)*π/L,σ=(L-2Y)*π/(2L),r=L/π,設(shè)半球面上與Q點(diǎn)經(jīng)緯度相同的點(diǎn)為P(x,y,z),則可計(jì)算出P點(diǎn)坐標(biāo),x= cos(θ)*cos(σ)*R,y=sin(θ)*cos(σ)*R,z=sin(σ)*R(R為半球面半徑),根據(jù)P(x,y,z)可求出G`(0,y`,z`),y`= y,z`=z,然后根據(jù)G`點(diǎn)坐標(biāo)求出與之對(duì)應(yīng)的魚(yú)眼圖上的像素點(diǎn)G(u,v),當(dāng)0≤m≤L時(shí),與之對(duì)應(yīng)的G點(diǎn)在前魚(yú)眼圖像中,當(dāng)L<m≤2L時(shí),與之對(duì)應(yīng)的G點(diǎn)在h后魚(yú)眼圖像中。最后魚(yú)眼圖上的G像素點(diǎn)像素值賦值給前半球面全景圖上的像素點(diǎn)Q。按照以上算法可以將前魚(yú)眼圖和后魚(yú)眼圖轉(zhuǎn)換成球面全景圖。
(3)球形全景圖向魚(yú)眼圖和立方體全景圖轉(zhuǎn)換
球形全景圖表示水平視角π到-π和垂直視角π/ 2到-π/2的空間范圍,球形全景圖中每一行像素點(diǎn)都具有相同的垂直視角,每一列像素點(diǎn)具有相同的水平視角。建立如圖2所示的三維空間直角坐標(biāo)系和球坐標(biāo)系,O為坐標(biāo)系原點(diǎn),OX軸正方向?yàn)樗较蛴?,OZ軸正方向?yàn)榇怪敝赶蛏?,OY軸正方向?yàn)榇怪盭OZ面由外向里,三維空間直角坐標(biāo)系用(x,y,z)表示,過(guò)P點(diǎn)做PS垂直于XOY平面且與平面交于點(diǎn)S,方位角θ為OX軸沿逆時(shí)針旋轉(zhuǎn)到OS所轉(zhuǎn)過(guò)的角(-π≤θ≤π),俯仰角σ為OP沿逆時(shí)針旋轉(zhuǎn)到OS所轉(zhuǎn)過(guò)的角(-π/ 2≤σ≤π/2),r為OP的距離,球面坐標(biāo)P在球坐標(biāo)系用(θ,σ,r)表示。
設(shè)球形全景圖寬為L(zhǎng),長(zhǎng)為2L,球形全景圖中任意像素點(diǎn)H(u,v)(其中0≤m<2L,0≤n<L)對(duì)應(yīng)的俯仰角為σ、方位角為θ,則u、v與σ、θ有以下映射關(guān)系:σ=(L-2v)*π/(2L),θ=(L-u)*π/L。
本研究結(jié)果顯示治療后鼻竇開(kāi)放組和上頜竇根治組VAS評(píng)分、炎癥指標(biāo)(hs-CRP、TNF-α、IL-2)、SNOT-22量表評(píng)分高于球囊擴(kuò)張組(P<0.05);且無(wú)論從術(shù)后生活質(zhì)量還是術(shù)后炎性因子水平分析,球囊擴(kuò)張組均優(yōu)于其他兩組,這與于青青等[21]的Meta分析結(jié)果相符。Raghunandhan等[22]對(duì)20例行鼻竇球囊擴(kuò)張術(shù)的CRS患者進(jìn)行前瞻性研究發(fā)現(xiàn),其術(shù)后癥狀評(píng)分顯著降低,療效顯著,本研究結(jié)果與其一致。雖然與傳統(tǒng)手術(shù)相比,鼻竇球囊擴(kuò)張術(shù)手術(shù)時(shí)間短,術(shù)中出血少,術(shù)后癥狀輕,患者痛苦小,術(shù)后恢復(fù)好,但鼻竇球囊擴(kuò)張術(shù)較傳統(tǒng)術(shù)式費(fèi)用高,應(yīng)根據(jù)患者的經(jīng)濟(jì)情況和總體條件選擇合適的手術(shù)方式。
1.2 文字添加的實(shí)現(xiàn)
本系統(tǒng)首先從字幕文件中提取每一幀圖像上所設(shè)置的文字,然后將每一幀上的文字制作成PNG格式的圖片,再?gòu)淖帜晃募凶x出該文字圖片在三維空間的位置(即該圖片中心點(diǎn)在觀察坐標(biāo)系三維空間中的坐標(biāo))和文字圖片的單位法向量,將文字圖片根據(jù)位置和法向量信息放置在全景圖所構(gòu)建的三維空間中,最后將該文字投射到全景圖上。每一幀都像上面一樣向全景圖中添加文字即可。
建立如圖4所示的球坐標(biāo)系和觀察坐標(biāo)系。球坐標(biāo)系的原點(diǎn)是觀察坐標(biāo)系的原點(diǎn)O,過(guò)P`點(diǎn)做P`S`垂直于XOY平面且與平面交于點(diǎn)S`,方位角θ為OX軸沿逆時(shí)針旋轉(zhuǎn)到OS所轉(zhuǎn)過(guò)的角(-π≤θ≤π),俯仰角σ為OP`沿逆時(shí)針旋轉(zhuǎn)到OS`所轉(zhuǎn)過(guò)的角(-π/2≤σ≤π/2),r為OP`的距離,球面坐標(biāo)P在球坐標(biāo)系用(θ,σ,r)表示。三維空間中一點(diǎn)P的球坐標(biāo)(θ,σ,r)與觀察坐標(biāo)系坐標(biāo)(x,y,z)的映射關(guān)系有:z=sin(σ)*r,x=cos(θ)* cos(σ)*r,y=sin(θ)*cos(σ)*r,觀察坐標(biāo)系和球坐標(biāo)系坐標(biāo)單位都為像素。
設(shè)任意一張PNG文字圖片為pic,設(shè)pic的長(zhǎng)為W(單位像素),寬為H(單位像素),像素坐標(biāo)格式為(w,h)(0≤w<W,0≤h<H),設(shè)pic中像素(0,0)為像素點(diǎn)A,像素(W-1,0)為像素點(diǎn)B,像素(W-1,H-1)為像素點(diǎn)C,像素(0,H-1)為像素點(diǎn)D,像素(W/2,H/2)為像素點(diǎn)O`。建立如圖4所示的pic坐標(biāo)系,以pic中像素點(diǎn)O`為pic坐標(biāo)系的原點(diǎn),在ABCD平面上以平行于AB的方向直線為X`軸,正方向與從A到B同向,以平行于DA的直線為Z`軸,正方向與從D到A同向,以垂直于平面ABCD的直線為Y`軸,正方向由外向里,pic坐標(biāo)系單位是像素,在該坐標(biāo)系中坐標(biāo)表示為(x`,y`,z`)。在pic坐標(biāo)系中A像素點(diǎn)坐標(biāo)為(-W/2,0,H/2),B像素點(diǎn)坐標(biāo)為(W/2,0,H/2),C像素點(diǎn)坐標(biāo)為(W/2,0,-H/2),D像素點(diǎn)坐標(biāo)為(-W/2,0,-H/2)。
圖4 片源全景圖像素與pic圖片像素映射模型
觀察坐標(biāo)系坐標(biāo)(x,y,z)與pic坐標(biāo)系坐標(biāo)(x`,y`,z`)相互轉(zhuǎn)換的關(guān)系。由于文字在三維空間中保證水平不能傾斜,所以文字圖片必須是水平放置的,故pic坐標(biāo)系可由觀察坐標(biāo)系經(jīng)過(guò)繞Z軸沿逆時(shí)針旋轉(zhuǎn)α角(0≤α<2π),再繞X軸沿逆時(shí)針旋轉(zhuǎn)β角(-π/2≤β≤π/ 2),最后由O點(diǎn)平移到O`點(diǎn)變換而來(lái)。根據(jù)pic的單位法向量可計(jì)算出α和β,β=arctan(),當(dāng)β≥0時(shí),α=arccos()-π/2,當(dāng)β<0時(shí),α=-arccos()+3π/2。根據(jù)以上原理經(jīng)過(guò)數(shù)學(xué)推導(dǎo)可知觀察坐標(biāo)系坐標(biāo)(x,y,z)與pic坐標(biāo)系(x`,y`,z`)轉(zhuǎn)換關(guān)系如公式(1)、(2)。
本系統(tǒng)的運(yùn)行界面如圖5所示。
圖5 系統(tǒng)界面
本系統(tǒng)提出了立方體全景圖、魚(yú)眼圖和球面全景圖相互之間的轉(zhuǎn)換算法,同時(shí)還提出了向立方體全景圖、魚(yú)眼圖和球面全景圖添加文字的算法,并且實(shí)現(xiàn)了這三種圖像之間的任意轉(zhuǎn)換合成,可根據(jù)片源參數(shù)支持部分全景圖和完整全景圖作為片源,實(shí)現(xiàn)了向全景圖所構(gòu)建的三維空間里的任意位置任意方向添加字幕的功能,字體、字號(hào)、顏色是可以根據(jù)系統(tǒng)選擇的,可導(dǎo)入字幕文件,根據(jù)字幕文件格式自動(dòng)向幀序列里添加文字。
參考文獻(xiàn):
[1] 楊記,陳孝威.基于全景圖像的VR建模研究及實(shí)現(xiàn).計(jì)算機(jī)應(yīng)用研究,2004(1):249~254
[2] 軒亞光,謝黨恩,張志立.基于圓魚(yú)眼照片的全景圖像生成方法[J].福建電腦,2010
[3] 韋群等.基于立方體全景圖的虛擬場(chǎng)景瀏覽技術(shù)研究及實(shí)現(xiàn)[J].中國(guó)圖象圖形學(xué)報(bào),2003,9(8)
[4] 英向華,胡占義.一種基于球面投影約束的魚(yú)眼鏡頭校正方法[J].計(jì)算機(jī)學(xué)報(bào),2003,26(12):1702~1708
[5] 黃有度,蘇化明.一種魚(yú)眼圖像到透視投影圖像的變換模型[J].系統(tǒng)仿真學(xué)報(bào),2005,1:29~32
A Kind of Adding Text System Based on Panorama
HU Yuan-yan,SHANG Miao-xing,HE Shao-yong
(Co11ege of Computer Science,Sichuan University,Chengdu 610065)
Studies the a1gorithms for the generation of cubic panorama,fisheye image and spherica1 panorama,and designs the conversion a1gorithms of the three kinds of panorama,moreover,designs the a1gorithm of adding text to panorama.The system provides a function that cubic panorama,converts fisheye image and spherica1 panorama each other,moreover,it achieves to add text to panorama in any direction and space which is bui1t based on the panorama,the typeface,size and co1or of text can be se1ected by operation system.It can add text to the sequence of panorama frames by text fi1e automatica11y.
Cubic Panorama;Fisheye Image;Spherica1 Panorama;Projection;Mapping
1007-1423(2015)05-0003-07
10.3969/j.issn.1007-1423.2015.05.001
胡遠(yuǎn)艷(1989-),男,河南信陽(yáng)人,碩士,研究方向?yàn)橛?jì)算機(jī)圖形圖像
尚苗星(1981-),男,云南澄江人,本科,助理研究員,研究方向?yàn)榫W(wǎng)絡(luò)安全
2014-12-30
2015-01-20
何紹勇(1984-),男,云南楚雄人,本科,工程師,研究方向?yàn)榫W(wǎng)絡(luò)安全