楊信錕,阮承治,陳 鑌
(1.武夷學院 機電工程學院,福建 武夷山354300;2.農機智能控制與制造技術福建省高校重點實驗室,福建 武夷山354300)
隨著科學技術的迅猛發(fā)展,多媒體信息種類增多,表現效果趨于多樣化[1],其中VR全景圖像是多媒體顯示發(fā)展的重要組成部分,具有真實、直觀、全面的性能特點,也是虛擬現實和計算機視覺的重要組成部分[2]。全景圖像跳轉是指全景圖像中的不同場景視圖的切換,應用最廣泛的全景圖漫游,是現有的全景圖像跳轉技術的主要依據,全景圖坐標與屏幕坐標之間的關系是根據校正圖與球面坐標的關系確定的[3-4]。當每次點擊屏幕進行視場移動時,每移動一次,都需要更新校正圖與球面坐標之間的關系[5],該算法計算量很大,除了保證實時性,還需要高配置的硬件系統(tǒng),因此成本較高,效率低下。
本論文提出了一種全新的全景圖像跳轉方法,利用專業(yè)的圖形程序接口OpenGL來實現,將采集到的全景圖像進行坐標解析,先進行圖像的投影變換,再進行視口變換,得到屏幕坐標,當視圖屏幕點擊位置發(fā)生變化時,則可以和全景坐標進行匹配判斷,實現圖像的跳轉。
該方案利用專業(yè)的圖形程序接口OpenGL來實現,OpenGL是一款專業(yè)的圖形程序接口,采用C語言編寫,它具有獨立的特性,與硬件無關,易用可操作性強,可以基于不同的硬件平臺實現,同時支持多種操作系統(tǒng),是常用的圖形開發(fā)標準庫[3]。
該算法實現圖像跳轉總共有4個步驟:首先利用全景相機采集全景圖像,解析得到多個全景圖像坐標,并采用幾何變換消除圖像的變形;接著在OpenGL中調用glMatrixMode函數進行圖像的投影變換;然后在OpenGL中調用glViewPort進行視口變換,得到屏幕坐標;最后判斷屏幕坐標與全景圖像坐標的匹配,根據匹配結果完成子圖像的跳轉。具體流程如圖1所示。
全景圖像的采集指的是利用專業(yè)的全景攝影裝置進行全景圖像信息的采集,本實驗采用柯達Pixpro SP360全景相機。該相機采用方盒圓頂設計,可以基于不同場景針對性選擇合適的拍攝視角,該相機在水平或者垂直狀態(tài)都能拍攝到360度全景照片和視頻。隨后將全景圖像的像素解析成坐標的形式,并采用幾何變換消除圖像獲取時出現的幾何變形,幾何變換包括旋轉、移動、拉伸、壓縮、錯切等。
圖1 圖像跳轉算法流程
投影變換就是將圖片投影到一個新的視平面,只顯示可視空間內的場景到屏幕上。根據全景圖像的坐標進行圖像投影變換,得到圖像的投影模型,具體的步驟為:
第一步,采用變換公式(1)
因此,根據全景圖像的坐標,利用投影變換矩陣,就可以得到投影變換后的圖像坐標。在OpenGL中調用glMatrixMode函數,以GL_PROJECTION作為參數,調用的指令為:glMatrixMode(GL_PROJECTION)。
使用OpenGL的運行過程如圖2所示。
如果圖像的視角發(fā)生改變,則需要更新OpenGL中對應的變換矩陣得到新的圖像坐標。
在投影變換之后,將對視圖進行視口變換,得到圖像的屏幕坐標。在OpenGL中調用glViewPort函數,調用指令如下:
其中,x,y為視口的起點,一般為(0,0),width,height為視見區(qū)域的寬和高。
假設當前視圖有N個圖像坐標,若視場角發(fā)生變化時,則需在OpenGL中更新對應的變換矩陣,再進行視口變換得到新的屏幕坐標,此時如果屏幕出現單擊操作,則先判斷此時點擊位置點的圖像坐標,是否與當前視圖的N個屏幕坐標一致,如果坐標匹配成功,圖像則跳轉到點擊的子圖像。具體的流程如圖3所示。
將本方法與基于Pano2VR的方法進行對比實驗,Pano2VR是一款全景圖像轉換和編輯軟件,可以方便地進行圖像格式轉換以及為圖像拼接做預處理。
實驗平臺為Arm cortex-A7+mali400 GPU,實驗結果如表1所示。
使用Pano2VR方法的圖像跳轉平均時間為50ms,而使用本方法跳轉一次時間為30ms,節(jié)約了40%的時間,提高了運算效率。
上述研究表明,本文提出了全新的采用依據OpenGL實現的全景圖像跳轉方法,該方法判斷高效,實現全景瀏覽及切換的功能,給瀏覽者真實、高效的全景瀏覽體驗,具有一定的科研和應用價值。
圖2 OpenGL的運行過程
圖3 圖像跳轉流程