當(dāng)前位置:首頁 > 顯示光電 > 顯示光電
[導(dǎo)讀]闡述立體視覺及雙目視差原理。采用雙中心投影算法,介紹立體圖像對(duì)生成的有關(guān)計(jì)算公式,詳細(xì)描述OpenGL立體顯示一個(gè)立方體的步驟,并借助紅綠濾光眼鏡觀察生成的立體圖像對(duì)。結(jié)果表明,采用雙中心投影算法可以得到較好的立體效果,可廣泛使用于建筑物和視景漫游等多種場合。

1 引言
    虛擬現(xiàn)實(shí)(Virtual Reality)是一種新興的、極有應(yīng)用前景的計(jì)算機(jī)綜合性技術(shù)。采用以計(jì)算機(jī)技術(shù)為核心的現(xiàn)代高科技生成逼真的視覺、聽覺、觸覺一體化的特定范圍的虛擬環(huán)境。立體顯示是虛擬現(xiàn)實(shí)的關(guān)鍵技術(shù)之一,它使人在虛擬世界里具有更強(qiáng)的沉浸感,立體顯示的引入可以使各種模擬器的仿真更加逼真。研究立體成像技術(shù)并利用現(xiàn)有的微機(jī)平臺(tái),結(jié)合相應(yīng)的軟硬件系統(tǒng)在平面顯示器上顯示立體視景。


2 立體視覺概述
   
據(jù)研究,人的大腦能從以下4個(gè)方面獲得深度(距離)線索:靜態(tài)圖像中的深度線索、由運(yùn)動(dòng)造成的深度線索、生理上的深度線索以及雙目視差線索,這里僅研究雙目視差線索。當(dāng)用雙眼看同一景物時(shí),由于左、右眼在空間所處位置不同,兩只眼晴的視角會(huì)有所不同,看到的圖像也不一樣,會(huì)有視差,如圖1a所示。具有視差的雙眼圖像經(jīng)大腦融合,可產(chǎn)生含有立體深度信息的立體圖像。一般將雙目所見的一對(duì)具有視差的二維圖像稱為立體圖像對(duì)。若模仿產(chǎn)生這一對(duì)平面圖像,并采取技術(shù)措施,使左眼只能看見右邊的圖像,而右眼只能看見左邊的圖像,則人類的視覺系統(tǒng)就會(huì)融合該二維空間中一對(duì)稍有差別的圖像,從而生成具有立體感受的圖像。根據(jù)投影面、人眼以及觀察對(duì)象之間的相對(duì)位置,可有正視差(圖1b)、負(fù)視差(圖1c)和零視差(圖1d)之分。

3 雙中心投影算法
   
由以上研究可知,立體圖像對(duì)的產(chǎn)生是由于左、右眼觀察到的物體透視結(jié)果不同。因此在立體顯示的視景仿真中設(shè)置兩只虛擬的眼睛,一個(gè)獲取左眼的圖像,另一個(gè)獲取右眼的圖像,分別將左右眼的圖像傳送給相應(yīng)的眼睛。因此。在立體顯示中,需要采用包含兩個(gè)視點(diǎn)的透視投影方法一雙中心投影算法。圖2為雙中心投影。

    左視點(diǎn)Leye和右視點(diǎn)Reye均位于X軸上,兩視點(diǎn)間的距離為e,兩視點(diǎn)連線中心為坐標(biāo)原點(diǎn),則左視點(diǎn)的坐標(biāo)為(-e/2,0,0),右視點(diǎn)的坐標(biāo)為(+e/2,0,0)。投影平面平行于XY平面,到左右視點(diǎn)的距離均為d。三維空間中一點(diǎn)P(xp,yp,zp)在左視點(diǎn)投影中的坐標(biāo)為(xl,yl,zl),在右視點(diǎn)投影中的坐標(biāo)為(xr,yr,zr),則zl=zr=d。點(diǎn)P(xp,yp,zp)和Reye投影線的參數(shù)方程為:
   
    在投影平面上z=d,可得
   
    將式(2)帶入式(1)得點(diǎn)P在投影平面的坐標(biāo)(xr,yr):
   
    同理,點(diǎn)P和Leye的投影線在投影平面上的投影點(diǎn)坐標(biāo)是:
   
    可得水平視差:
   
    由此可見,當(dāng)zp>d時(shí),0<E<e,此時(shí)為正視差;當(dāng)zp<d時(shí),E<0,此時(shí)為負(fù)視差;而當(dāng)zp=d時(shí),E=0,此時(shí)為零視差。采用雙中心投影算法,設(shè)置雙視點(diǎn)就可獲取三維空間中物體的左右眼圖像,從而生成立體圖像對(duì)。

4 OpenGL實(shí)現(xiàn)立體顯示
    開放性圖形庫OpenGL(Open Graphic Library)是一個(gè)三維計(jì)算機(jī)圖形和模型庫。它獨(dú)立于操作系統(tǒng)和硬件環(huán)境,適用于從個(gè)人計(jì)算機(jī)到工作站的廣泛計(jì)算機(jī)環(huán)境。
    OpenGL在三維真實(shí)感圖形制作中具有優(yōu)秀的性能,用該圖形庫不僅能方便地制作出高質(zhì)量的靜止彩色圖像,還能創(chuàng)造出高質(zhì)量的動(dòng)畫效果。借助Windows編程環(huán)境還可控制模型的人機(jī)交互。由于其開放性和高度的可重用性,目前已成為業(yè)界標(biāo)準(zhǔn)。
4.1 立體圖像對(duì)的繪制
   
按上述投影算法計(jì)算出立體圖像對(duì)后,應(yīng)用OpenGL繪制立體圖像對(duì),分別用紅、綠兩種顏色繪制右眼和左眼的圖像。以一個(gè)變長為10 cm,中心點(diǎn)在原點(diǎn)的正方體為例,設(shè)兩視點(diǎn)間距離e為5 cm,投影面距高觀察者d為40 cm,考察正方體的一個(gè)頂點(diǎn)(5,5,5),由上述投影算法可得:xr=32 cm,xl=48 cm,yl=yr=4040 cm,zr=zl=d=40 cm對(duì)8個(gè)頂點(diǎn)分別計(jì)算后,連接相應(yīng)的立體透視投影點(diǎn),即可得該立方體的立體圖像對(duì)。用數(shù)組vertex[8][3]存儲(chǔ)頂點(diǎn),數(shù)組translatevertexr[8][3]存儲(chǔ)右眼投影計(jì)算后坐標(biāo),數(shù)組translatevertexl[8][3]存儲(chǔ)左眼投影計(jì)算后的坐標(biāo),對(duì)相應(yīng)的點(diǎn)進(jìn)行投影計(jì)算:

   
    使用OpenGL的透視投影變換,需設(shè)置前后裁剪面到觀察者的距離及前裁剪面的寬度和高度等。前裁剪面的寬度用該寬度與高度的比值表示,取顯示窗口的寬度和高度之比。
    double Near.Far;//前后裁剪面距觀察者的距離
    int ratio=width/height;//顯示屏的寬和高之比
    ViewHeight2=Near*tan(radians);//計(jì)算視野的高度
    ViewWidth2=ViewHeight2*ratio;//計(jì)算視野的寬度
    計(jì)算右眼的視野范圍;
    left=-ViewWidth2-0.5*e*0.3;
    right=ViewWidth2-0.5*e*0.3;
    投影并繪制模型:
    glFrustum(left,right,bottom,top,Near,F(xiàn)ar);
    glDrawBuffer(GL_BACK_RIGHT);//使用右后緩存
    gluLookAt(0+e/2。0,5。0+d/2,0,-5,0,1,0);
    //確定右眼位置
    glColor3f(1.0,0.0,0.0);//用紅色繪制
    draw();//計(jì)算立體圖像對(duì)并繪制
    同理繪制左眼的圖像,如圖3所示。

4.2 雙緩存區(qū)的使用
    OpenGL提供雙緩存技術(shù),支持兩個(gè)完整顏色緩存的硬件或軟件。繪制一個(gè)緩存時(shí),顯示另一個(gè)緩存中的內(nèi)容。每繪制好一幀便交換緩存;這樣剛才被顯示的緩存被用來繪制,而用來繪制的緩存被顯示。這樣,當(dāng)顯示器刷新時(shí),緩存區(qū)進(jìn)行交換,畫面就不會(huì)閃爍。
    OpenGL也支持立體觀察,實(shí)現(xiàn)左顏色緩存和右顏色緩存,它們分別用于左立體圖像和右立體圖像??稍诔跏蓟瘯r(shí),分別使用參數(shù)PFD_DOUBLEBUFFER和PFD_STERE-O_DONTCARE支持立體顯示和雙緩存。使用雙緩存時(shí),通常只繪制后緩存,使用函數(shù)glDrawBuffer()還可指定將立體圖像渲染到具體的某個(gè)緩存。
    例如,繪制右眼圖像時(shí)使用右后緩存區(qū)glDrawBuffer(GL_BACK_RIGHT),繪制左眼時(shí)使用左后緩沖區(qū)glDraw-Buffer(GL_BACK_LEFT)。
4.3 立體圖像的觀察
   
使用簡單的濾光鏡就可觀察有立體感的圖像。其原理是:由于濾光片(實(shí)驗(yàn)中使用紅、綠濾光片)吸收其他光線,只讓相同顏色的光線通過,因此左、右眼各透過不同顏色的光。當(dāng)使用濾光鏡觀察計(jì)算機(jī)屏幕上的立體圖像對(duì)時(shí),就會(huì)看到具有深度感受的圖像。在實(shí)驗(yàn)中發(fā)現(xiàn),刷新頻率對(duì)圖像立體效果的形成具有重要作用。刷新頻率過低,由于人眼所維持的圖像已消失,不能得到三維立體感受;刷新頻率過高就會(huì)出現(xiàn)一只眼睛可看到兩幅圖像的現(xiàn)象。將顯示的刷新頻率設(shè)置合適,在程序中設(shè)置圖像刷新頻率設(shè)置為50 Hz,利用紅綠濾光鏡觀察模型的立體成像,得到較明顯的立體視覺效果。

5 結(jié)論
   
根據(jù)立體顯示原理,采用雙目視差算法對(duì)物體進(jìn)行立體顯示,利用OpenGL生成立體圖像對(duì),并借助紅綠濾光眼鏡觀察,得到了較好的立體視覺效果。立體顯示技術(shù)的引入增強(qiáng)了人在虛擬環(huán)境中的沉浸感,可廣泛應(yīng)用于建筑物和視景漫游、虛擬戰(zhàn)爭演練場和各種模擬訓(xùn)練等多種場合。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉