趙作林,黃心淵
(北京林業(yè)大學(xué) 信息學(xué)院,北京 100083)
立體顯示技術(shù)作為當(dāng)今一個(gè)熱點(diǎn)技術(shù)受到越來越多的重視,各國(guó)科研人員研究出多種立體顯示方法,極大地豐富了人們的視覺體驗(yàn)[1-2]。一般立體顯示技術(shù)的實(shí)現(xiàn)大多都基于計(jì)算機(jī),在計(jì)算機(jī)屏幕上展示效果[3]。但是由于計(jì)算機(jī)不易移動(dòng)的特點(diǎn),大大降低了其便攜性和可操控性。因此,有必要在移動(dòng)設(shè)備上進(jìn)行立體顯示技術(shù)的相關(guān)研究,提高其靈活方便的特性,便于實(shí)時(shí)地進(jìn)行即時(shí)性立體技術(shù)實(shí)現(xiàn),從而為科學(xué)研究和實(shí)地應(yīng)用提供一種簡(jiǎn)單宜行的解決方案。
本文將設(shè)計(jì)一個(gè)基于Android平臺(tái)的圖像體視化系統(tǒng),通過紅藍(lán)互補(bǔ)色眼鏡,實(shí)現(xiàn)圖像的立體顯示,使用戶可以通過移動(dòng)設(shè)備隨時(shí)隨地體驗(yàn)立體圖像。
根據(jù)研究,人眼在感知一個(gè)三維對(duì)象時(shí),由于兩只眼睛的位置在水平上略有距離,所以觀測(cè)到的物體圖像也是略有差別的,因此通過視覺神經(jīng)傳遞到大腦進(jìn)行分析,可以感受到物體三維深度的變化,這就是立體視覺的原理。如果左右眼分別獨(dú)立地看到兩幅不同位置的圖像,就可以感受到立體空間感。通過紅藍(lán)眼鏡觀察圖像的立體效果采用的是濾色的方式來分開圖片,因此也被稱為分色技術(shù),用戶帶上紅藍(lán)眼鏡后,左右眼分別只能看到圖像的左片和右片,從而產(chǎn)生立體視覺。
對(duì)于圖像,在讀取圖像數(shù)據(jù)后,要對(duì)其圖像數(shù)據(jù)進(jìn)行修改,通過平移、柱面投影變換、球面投影變換,得到體視化圖像,然后通過互補(bǔ)色體視生成方法將變換得到的圖像對(duì)進(jìn)行合成,從而生成需要的立體圖像[2]。
把一幅圖像分成奇數(shù)場(chǎng)和偶數(shù)場(chǎng),假設(shè)奇數(shù)場(chǎng)為右通道,即右眼,偶數(shù)場(chǎng)為左通道,即左眼(下述兩種方法同理)。由于模擬的是負(fù)視差情形,因此成像點(diǎn)投影到平面的時(shí)候會(huì)出現(xiàn)右眼場(chǎng)景向左偏、左眼場(chǎng)景向右偏的情況,在這里將奇數(shù)場(chǎng)向左平移P/2像素(P為水平視差),偶數(shù)場(chǎng)向右平移P/2像素,如圖1所示,從而得到兩幅圖像,形成了稍有差異的體視圖像對(duì)。
景深感隨著偏移距離的增加而增強(qiáng),但當(dāng)偏移距離超出有效的區(qū)域,人的雙眼便不能將奇偶數(shù)場(chǎng)結(jié)合到一起。經(jīng)過多次測(cè)試,當(dāng)像素的偏移量超過圖像寬度(width)的5%的時(shí)候,人眼便不能很好地觀察到體視效果,從而得出水平時(shí)差與圖像寬度的關(guān)系公式,即P≤width×5%。
一幅平面圖像,分別通過左右眼視線投射到半圓柱面形狀的投影面上,得到兩幅圖像,組成體視圖像對(duì),如圖2所示。
由于雙眼的垂直視差為零,并且半圓柱在y軸方向與成像面每行像素之間的垂直距離均相同,所以對(duì)于左(右)眼視圖來說,只需記錄雙眼對(duì)成像面中一行像素在半圓柱面上的投影點(diǎn),其余行在半圓柱面上的投影點(diǎn)與其相同就可以。
設(shè)柱面投射到xoz面的方程為
式中:width是成像面的寬度,r是柱面橫截面的短半徑,d是成像面到柱面前凸面最近點(diǎn)的垂直距離。處理圖像平面的方程為
左右眼坐標(biāo)方程分別為
式中:pz是兩視點(diǎn)距離。左視點(diǎn)對(duì)應(yīng)奇數(shù)場(chǎng)(偶數(shù)場(chǎng))投影后所得點(diǎn)x,坐標(biāo)為
式中,h是投影前圖像上一點(diǎn)的x坐標(biāo)值,0≤h<width。
根據(jù)式(5),可求得在柱面上的投影點(diǎn)坐標(biāo)。為了取直線與半圓柱面的前凸面交點(diǎn)坐標(biāo),在h≤Xl時(shí),公式取“+”號(hào),h>Xl時(shí),公式取“-”號(hào)。
同理可求得右視點(diǎn)在柱面上對(duì)圖像的偶數(shù)場(chǎng)(奇數(shù)場(chǎng))的投影點(diǎn),從而得到柱面投影的體視圖像對(duì)。
球面投影的原理和柱面投影基本相同。原理圖見圖3,由于雙眼的垂直視差為零,并且半圓柱在y軸方向與成像面每行像素之間的垂直距離均相同,所以對(duì)于左(右)眼視圖來說,設(shè)球面方程為
式中:width是成像面寬度,r是球面半徑。
成像面投影到xoz面是以原點(diǎn)為起點(diǎn)的x軸上一段長(zhǎng)為width的直線,在xoy面是以原點(diǎn)為左下角的矩形,即
左右眼坐標(biāo)方程分別為
式中:pz是兩視點(diǎn)距離,y'是成像面像素點(diǎn)的y坐標(biāo)。左視點(diǎn)對(duì)奇數(shù)場(chǎng)(偶數(shù)場(chǎng))投影后所得點(diǎn)x坐標(biāo)同式(5),只是在c的取值上有所不同,即
根據(jù)式(5),同樣可求得在球面上的投影點(diǎn)坐標(biāo)。為了取直線與球面的前凸面交點(diǎn)坐標(biāo),在h≤Xl時(shí),公式取“+”號(hào),h>Xl時(shí),公式取“-”號(hào)。
同樣可求得右眼視線對(duì)于圖像在球面上的投影點(diǎn),分別取兩幅圖像的奇偶行進(jìn)行合成,即可得到體視圖像。
上面所述3種方法,都是在原圖的基礎(chǔ)上,生成另一副圖像,組成圖像對(duì)。在組成圖像對(duì)后,還要通過Alpha透明圖像合成的方法,將圖像對(duì)合成為體視圖像,方可通過紅綠眼鏡觀看到立體效果。
通過把圖像對(duì)分別只保留紅色和綠色通道,然后進(jìn)行Alpha透明圖像合成。圖像合成技術(shù)很重要,其實(shí)質(zhì)是將兩幅或兩幅以上的圖像信息融合在一起,在進(jìn)行圖像合成的時(shí)候可以采用Alpha值的方法,Alpha透明圖像合成的方法介紹如下。
合成圖像的各點(diǎn)像素值是由用來制作合成圖的兩張圖像相應(yīng)點(diǎn)的像素值按一定比例混合而成的,這個(gè)比例由Alpha值決定,具體計(jì)算公式如
式中:Pixel1ValR/G/B代表圖像1的當(dāng)前像素點(diǎn)的灰度值;Pixel2ValR/G/B代表圖像2的當(dāng)前像素點(diǎn)的灰度值;Alpha的取值范圍從0到255,表示兩個(gè)像素在最終合成的結(jié)果中所占的權(quán)重,通過修改Alpha的值,就可以改變合成后的圖像中用來合成的兩張圖像各自所占的比值,改變合成后的顯示效果。
本系統(tǒng)是在Eclipse集成開發(fā)環(huán)境中開發(fā)實(shí)現(xiàn)的,JDK版本為6.0,Android SDK版本為3.2。系統(tǒng)的整體框架圖如圖4所示。
1)平移方法代碼如下:
2)柱面投影方法及球面投影方法代碼。
柱面投影的原理和球面投影基本相同,所以只列出相對(duì)較復(fù)雜的球面投影的代碼,代碼如下:
通過平移方法、柱面投影方法及球面投影方法生成的立體圖像如圖5、圖6、圖7所示。
3種方法生成的體視化圖像,通過互補(bǔ)色眼鏡觀看雖然都能夠產(chǎn)生立體效果,但是效果略有不同。平移方法可以產(chǎn)生一定的景深感,柱面和球面變換方法可以解決水平觀察和非水平觀察的問題。通過平移方法產(chǎn)生的圖像對(duì)光軸平行,在遠(yuǎn)處沒有聚焦點(diǎn),所以生成的體視圖像在觀察位置水平移動(dòng)或者頭部轉(zhuǎn)動(dòng)時(shí),都不能正確對(duì)焦,體視化效果較差。柱面投影方法和球面投影方法,光軸不再平行,而是交于屏幕前或后一點(diǎn),兩眼觀察有重疊區(qū)域,這樣得到的體視圖像有聚焦點(diǎn),觀察效果較好。
本文通過理論知識(shí)支撐與實(shí)際應(yīng)用相結(jié)合的方法,闡明了體視化圖像生成的相關(guān)技術(shù)及原理,從而設(shè)計(jì)并實(shí)現(xiàn)了基于移動(dòng)設(shè)備的圖像體視化系統(tǒng)。實(shí)驗(yàn)證明,本文提出的基于移動(dòng)設(shè)備的圖像體視化技術(shù)方法具有使用簡(jiǎn)便,易于實(shí)現(xiàn)的特點(diǎn),其體視效果明顯,易于觀察,對(duì)于體視技術(shù)在移動(dòng)設(shè)備的應(yīng)用和研究具有一定的指導(dǎo)意義。
[1]趙國(guó)英,黃心淵.三種體視圖像生成方法的比較研究[J].計(jì)算機(jī)工程,2002,28(7):182-184.
[2]吳瓊玉.基于圖像的視圖合成技術(shù)研究[D].國(guó)防科學(xué)技術(shù)大學(xué),2006.
[3]楊枝靈,王開.Visual C++數(shù)字圖像獲取、處理及實(shí)踐應(yīng)用[M].北京:人民郵電出版社,2003.
[4]高盟.3D立體影像制作的問題與探討[J].特技與動(dòng)畫,2009(2):15-19.
[5]SON J Y,JAVIDI B,KWACK K D.Methods for displaying three di?mensional images[J].Proceedings of the IEEE,2006,94(3):502-523.