本發(fā)明涉及圖像顯示技術(shù)領(lǐng)域,尤其涉及圖像數(shù)據(jù)處理的方法及裝置。
背景技術(shù):
虛擬現(xiàn)實(shí)(Virtual Reality,VR)是近幾年興起的計(jì)算機(jī)技術(shù)。通過佩戴VR鏡片設(shè)備來觀看虛擬現(xiàn)實(shí)資源,使用戶能夠產(chǎn)生身臨其境的感受。目前的VR裝置主要基于三種平臺(tái):移動(dòng)設(shè)備、PC和專用游戲設(shè)備(如PS)?,F(xiàn)有的基于移動(dòng)設(shè)備平臺(tái)的VR設(shè)備,所呈現(xiàn)的虛擬現(xiàn)實(shí)元素(視頻、圖像),都要借助運(yùn)行在移動(dòng)設(shè)備平臺(tái)上的第三方軟件(或VR廠商自研的軟件,即VR軟件)。為了在屏幕中呈現(xiàn)全景效果,這些第三方軟件對(duì)其自身的圖像進(jìn)行了虛擬現(xiàn)實(shí)處理,使其能夠應(yīng)用于虛擬現(xiàn)實(shí)場景。進(jìn)而再結(jié)合陀螺儀感知用戶頭部的轉(zhuǎn)動(dòng),以顯示應(yīng)用于虛擬現(xiàn)實(shí)場景的圖片,即給予用戶身臨其境的感覺。
用戶使用時(shí),首先在移動(dòng)設(shè)備上打開與VR裝置對(duì)接的VR軟件,然后將移動(dòng)設(shè)備放入VR裝置中,用戶佩帶上與VR裝置配套的VR鏡片設(shè)備開始體驗(yàn)VR資源。其中,有些VR裝置支持在將移動(dòng)設(shè)備插到VR裝置上的接口時(shí),自動(dòng)啟動(dòng)VR軟件。當(dāng)移動(dòng)設(shè)備啟動(dòng)VR軟件,運(yùn)行VR軟件,由于VR軟件提供的圖像資源均是應(yīng)用于虛擬現(xiàn)實(shí)場景的圖像,因而移動(dòng)設(shè)備的屏幕上相應(yīng)地呈現(xiàn)的該應(yīng)用于虛擬現(xiàn)實(shí)場景的圖像資源,則用戶通過佩戴VR鏡片設(shè)備能看到移動(dòng)設(shè)備的屏幕呈現(xiàn)出的全景效果。
發(fā)明人在實(shí)施本發(fā)明的過程中,發(fā)現(xiàn)移動(dòng)設(shè)備除了作為虛擬現(xiàn)實(shí)資源呈現(xiàn)的載體,其還包括很多其他的功能,例如語音通話和SNS社交網(wǎng)絡(luò)通信。在使用移動(dòng)設(shè)備運(yùn)行VR軟件,屏幕展示虛擬現(xiàn)實(shí)資源時(shí),若有除了VR資源展示的系統(tǒng)事件發(fā)生,且這些系統(tǒng)事件會(huì)在移動(dòng)設(shè)備上顯示相應(yīng)的圖像信息時(shí),其中,該圖像信息是平面圖像,用戶透過VR鏡片看到的這些圖像信息將是非正常、扭曲、翻轉(zhuǎn)的。例如用戶在觀看VR全景電影時(shí),收到了來自微信的視頻請(qǐng)求,則會(huì)在眼前呈現(xiàn)巨大的、橫向的視頻請(qǐng)求UI在眼前。因而,用戶在體驗(yàn)VR過程中,移動(dòng)設(shè)備發(fā)生系統(tǒng)事件并需要在屏幕上顯示相應(yīng)圖像信息時(shí),用戶為了看清屏幕上顯示的信息不得不摘下VR鏡片設(shè)備再查看顯示的圖像信息,否則用戶的視覺仍為VR視覺,無法看清顯示的圖像信息。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提出的一種圖像數(shù)據(jù)處理的方法及裝置,使得用戶在體驗(yàn)VR過程中,在移動(dòng)設(shè)備發(fā)生系統(tǒng)事件且需在屏幕上顯示相應(yīng)圖像信息時(shí),無需摘下VR鏡片設(shè)備來查看屏幕顯示的圖像信息及實(shí)現(xiàn)對(duì)移動(dòng)設(shè)備的操控。
本發(fā)明實(shí)施例提供的一種圖像數(shù)據(jù)處理的方法,包括:
在運(yùn)行虛擬現(xiàn)實(shí)應(yīng)用時(shí),實(shí)時(shí)判斷寫入到圖像數(shù)據(jù)緩沖區(qū)的待顯示的圖像數(shù)據(jù)是否能應(yīng)用于虛擬現(xiàn)實(shí)場景;
當(dāng)所述待顯示的圖像數(shù)據(jù)不能應(yīng)用于虛擬現(xiàn)實(shí)場景時(shí),從所述圖像數(shù)據(jù)緩沖區(qū)中提取所述待顯示的圖像數(shù)據(jù),通過虛擬現(xiàn)實(shí)處理將所述待顯示的圖像數(shù)據(jù)轉(zhuǎn)化成能應(yīng)用于虛擬現(xiàn)實(shí)場景的標(biāo)準(zhǔn)圖像數(shù)據(jù);
將所述標(biāo)準(zhǔn)圖像數(shù)據(jù)寫入所述圖像數(shù)據(jù)緩沖區(qū),以使所述標(biāo)準(zhǔn)圖像數(shù)據(jù)顯示在屏幕中。
進(jìn)一步地,所述實(shí)時(shí)判斷寫入到圖像數(shù)據(jù)緩沖區(qū)的待顯示的圖像數(shù)據(jù)是否能應(yīng)用于虛擬現(xiàn)實(shí)場景,包括:
實(shí)時(shí)讀取寫入到圖像數(shù)據(jù)緩沖區(qū)的待顯示的圖像數(shù)據(jù)的標(biāo)識(shí);所述標(biāo)識(shí)用于表示所述待顯示的圖像數(shù)據(jù)是否是應(yīng)用于虛擬現(xiàn)實(shí)場景顯示的標(biāo)準(zhǔn)圖像數(shù)據(jù);
根據(jù)所述標(biāo)識(shí)判斷所述待顯示的圖像數(shù)據(jù)是否能應(yīng)用于虛擬現(xiàn)實(shí)場景。
進(jìn)一步地,所述虛擬現(xiàn)實(shí)處理包括球面化處理,所述球面化處理具體為:
對(duì)于所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)的原始坐標(biāo)(x,y),根據(jù)球面化公式:計(jì)算出所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)在球面化后的標(biāo)準(zhǔn)坐標(biāo)(px,py);其中,R是預(yù)設(shè)的球面化曲率;
將所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)的原始坐標(biāo)替換為該像素點(diǎn)的標(biāo)準(zhǔn)坐標(biāo),完成對(duì)所述待顯示的圖像數(shù)據(jù)的球面化處理。
進(jìn)一步地,所述虛擬現(xiàn)實(shí)處理還包括沉浸化處理,所述沉浸化處理具體為:
將已完成球面化處理的待顯示的圖像數(shù)據(jù)對(duì)應(yīng)的圖像添加在能應(yīng)用于虛擬現(xiàn)實(shí)場景的背景圖像中;其中,所述背景圖像的尺寸大于所述屏幕的顯示尺寸。
進(jìn)一步地,所述虛擬現(xiàn)實(shí)處理還包括分屏處理,所述分屏處理具體為:
獲取用戶的左眼球的左視角與右眼球的右視角間的視差;
復(fù)制已完成沉浸化處理的待顯示的圖像數(shù)據(jù),獲得左眼圖像和右眼圖像;
根據(jù)所述視差調(diào)整所述左眼圖像和所述右眼圖像的視差,以分屏顯示左右眼圖像。
進(jìn)一步地,所述方法還包括:
在所述標(biāo)準(zhǔn)圖像數(shù)據(jù)顯示在屏幕之后,獲取當(dāng)前用戶的視覺焦點(diǎn)坐標(biāo);
判斷所述視覺焦點(diǎn)坐標(biāo)是否位于所述標(biāo)準(zhǔn)圖像數(shù)據(jù)在屏幕中顯示的范圍內(nèi);
若是,則判斷所述視覺焦點(diǎn)是否滿足預(yù)設(shè)的觸發(fā)條件,所述觸發(fā)條件用于表示用戶發(fā)出對(duì)所述視覺焦點(diǎn)坐標(biāo)的觸摸命令;
若滿足所述觸發(fā)條件,則將所述視覺焦點(diǎn)坐標(biāo)轉(zhuǎn)化成所述屏幕坐標(biāo)系對(duì)應(yīng)的平面坐標(biāo);
將與所述平面坐標(biāo)對(duì)應(yīng)的用戶觸控所述屏幕的操作信息發(fā)送給操作系統(tǒng)。
相應(yīng)地,本發(fā)明實(shí)施例還提供一種圖像數(shù)據(jù)處理的裝置,包括:
實(shí)時(shí)判斷模塊,用于在運(yùn)行虛擬現(xiàn)實(shí)應(yīng)用時(shí),實(shí)時(shí)判斷寫入到圖像數(shù)據(jù)緩沖區(qū)的待顯示的圖像數(shù)據(jù)是否能應(yīng)用于虛擬現(xiàn)實(shí)場景;
圖像轉(zhuǎn)化處理模塊,用于當(dāng)所述待顯示的圖像數(shù)據(jù)不能應(yīng)用于虛擬現(xiàn)實(shí)場景時(shí),從所述圖像數(shù)據(jù)緩沖區(qū)中提取所述待顯示的圖像數(shù)據(jù),通過虛擬現(xiàn)實(shí)處理將所述待顯示的圖像數(shù)據(jù)轉(zhuǎn)化成能應(yīng)用于虛擬現(xiàn)實(shí)場景的標(biāo)準(zhǔn)圖像數(shù)據(jù);
圖像數(shù)據(jù)顯示模塊,用于將所述標(biāo)準(zhǔn)圖像數(shù)據(jù)寫入所述圖像數(shù)據(jù)緩沖區(qū),以使所述標(biāo)準(zhǔn)圖像數(shù)據(jù)顯示在屏幕中。
進(jìn)一步地,所述實(shí)時(shí)判斷模塊包括:
標(biāo)識(shí)讀取單元,用于實(shí)時(shí)讀取寫入到圖像數(shù)據(jù)緩沖區(qū)的待顯示的圖像數(shù)據(jù)的標(biāo)識(shí);所述標(biāo)識(shí)用于表示所述待顯示的圖像數(shù)據(jù)是否是應(yīng)用于虛擬現(xiàn)實(shí)場景顯示的標(biāo)準(zhǔn)圖像數(shù)據(jù);
標(biāo)識(shí)判斷單元,用于根據(jù)所述標(biāo)識(shí)判斷所述待顯示的圖像數(shù)據(jù)是否能應(yīng)用于虛擬現(xiàn)實(shí)場景。
進(jìn)一步地,所述虛擬現(xiàn)實(shí)處理包括球面化處理,所述球面化處理具體為:
對(duì)于所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)的原始坐標(biāo)(x,y),根據(jù)球面化公式:計(jì)算出所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)在球面化后的標(biāo)準(zhǔn)坐標(biāo)(px,py);其中,R是預(yù)設(shè)的球面化曲率;
將所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)的原始坐標(biāo)替換為該像素點(diǎn)的標(biāo)準(zhǔn)坐標(biāo),完成對(duì)所述待顯示的圖像數(shù)據(jù)的球面化處理。
進(jìn)一步地,所述虛擬現(xiàn)實(shí)處理還包括沉浸化處理,所述沉浸化處理具體為:
將完成球面化的待顯示的圖像數(shù)據(jù)對(duì)應(yīng)的圖像添加在能應(yīng)用于虛擬現(xiàn)實(shí)場景的背景圖像中;其中,所述背景圖像的尺寸大于所述屏幕的顯示尺寸。
進(jìn)一步地,所述虛擬現(xiàn)實(shí)處理還包括分屏處理,所述分屏處理具體為:
獲取用戶的左眼球的左視角與右眼球的右視角間的視差;
復(fù)制已完成沉浸化處理的待顯示的圖像數(shù)據(jù),獲得左眼圖像和右眼圖像;
根據(jù)所述視差調(diào)整所述左眼圖像和所述右眼圖像的視差,以分屏顯示左右眼圖像。
進(jìn)一步地,所述裝置還包括:
焦點(diǎn)坐標(biāo)接收模塊,用于在所述標(biāo)準(zhǔn)圖像數(shù)據(jù)顯示在屏幕后,獲取當(dāng)前用戶的視覺焦點(diǎn)坐標(biāo);
焦點(diǎn)坐標(biāo)判斷模塊,用于判斷所述視覺焦點(diǎn)坐標(biāo)是否位于所述標(biāo)準(zhǔn)圖像數(shù)據(jù)在屏幕中顯示的范圍內(nèi);
觸發(fā)判斷模塊,用于當(dāng)所述視覺焦點(diǎn)坐標(biāo)位于所述范圍內(nèi)時(shí),判斷所述視覺焦點(diǎn)是否滿足預(yù)設(shè)的觸發(fā)條件,所述觸發(fā)條件用于表示用戶發(fā)出對(duì)所述視覺焦點(diǎn)坐標(biāo)的觸摸命令;
坐標(biāo)轉(zhuǎn)化模塊,用于當(dāng)所述視覺焦點(diǎn)滿足所述觸發(fā)條件時(shí),將所述視覺焦點(diǎn)坐標(biāo)轉(zhuǎn)化成所述屏幕坐標(biāo)系對(duì)應(yīng)的平面坐標(biāo);
操作信息發(fā)送模塊,用于將與所述平面坐標(biāo)對(duì)應(yīng)的用戶觸控所述屏幕的操作信息發(fā)送給所述移動(dòng)設(shè)備的操作系統(tǒng)。
實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
本發(fā)明實(shí)施例提供的圖像數(shù)據(jù)處理的方法和裝置,當(dāng)移動(dòng)設(shè)備判別到寫入到圖像數(shù)據(jù)緩沖區(qū)的圖像數(shù)據(jù)為非VR圖像數(shù)據(jù)時(shí),將該圖像數(shù)據(jù)轉(zhuǎn)化成能應(yīng)用于虛擬現(xiàn)實(shí)場景的標(biāo)準(zhǔn)圖像數(shù)據(jù),再將標(biāo)準(zhǔn)圖像數(shù)據(jù)寫入到圖像數(shù)據(jù)緩沖區(qū)中進(jìn)行相應(yīng)的顯示,從而,即使移動(dòng)設(shè)備發(fā)生系統(tǒng)事件請(qǐng)求,移動(dòng)設(shè)備的屏幕上顯示的圖像仍為VR圖像,用戶無需摘下VR鏡片設(shè)備再查看顯示的圖像,即無需用戶從VR視角轉(zhuǎn)變成平面視角與操作系統(tǒng)進(jìn)行交互,可以在VR視角下無縫地與操作系統(tǒng)進(jìn)行交互。
附圖說明
圖1是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的一個(gè)實(shí)施例的流程示意圖;
圖2是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的球面化處理前的圖像的示意圖;
圖3是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的球面化處理后的圖像的俯視示意圖;
圖4是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的球面化處理前后的圖像的側(cè)視示意圖;
圖5是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的分屏處理后的圖像的裸眼效果圖;
圖6是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的分屏處理后的圖像的VR視角效果圖;
圖7是本發(fā)明提供的圖像數(shù)據(jù)處理的裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
圖8是本發(fā)明提供的圖像數(shù)據(jù)處理的裝置的實(shí)時(shí)判斷模塊的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
參見圖1,是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的一個(gè)實(shí)施例的流程示意圖;本發(fā)明實(shí)施例提供的一種圖像數(shù)據(jù)處理的方法,由移動(dòng)設(shè)備執(zhí)行,包括步驟S1至步驟S3,具體為:
S1,在移動(dòng)設(shè)備運(yùn)行虛擬現(xiàn)實(shí)應(yīng)用時(shí),實(shí)時(shí)判斷寫入到圖像數(shù)據(jù)緩沖區(qū)的待顯示的圖像數(shù)據(jù)是否能應(yīng)用于虛擬現(xiàn)實(shí)場景;
S2,當(dāng)所述待顯示的圖像數(shù)據(jù)不能應(yīng)用于虛擬現(xiàn)實(shí)場景時(shí),從所述顯卡數(shù)據(jù)緩沖區(qū)中提取所述待顯示的圖像數(shù)據(jù),通過虛擬現(xiàn)實(shí)處理將所述待顯示的圖像數(shù)據(jù)轉(zhuǎn)化成能應(yīng)用于虛擬現(xiàn)實(shí)場景的標(biāo)準(zhǔn)圖像數(shù)據(jù);
S3,將所述標(biāo)準(zhǔn)圖像數(shù)據(jù)寫入所述圖像數(shù)據(jù)緩沖區(qū),以使圖像處理器將所述標(biāo)準(zhǔn)圖像數(shù)據(jù)顯示在所述移動(dòng)設(shè)備的屏幕中。
需要說明的是,用戶基于移動(dòng)設(shè)備體驗(yàn)VR的過程中,移動(dòng)設(shè)備通過運(yùn)行內(nèi)置的虛擬現(xiàn)實(shí)應(yīng)用模塊,在屏幕上呈現(xiàn)VR圖像,用戶通過佩帶VR鏡片設(shè)備觀看屏幕所呈現(xiàn)的VR圖像,其中,此虛擬現(xiàn)實(shí)應(yīng)用模塊為軟模塊,例如VR軟件。移動(dòng)設(shè)備在屏幕上呈現(xiàn)VR圖像過程具體為:由虛擬現(xiàn)實(shí)應(yīng)用模塊將VR圖像數(shù)據(jù)(即能應(yīng)用于虛擬現(xiàn)實(shí)場景的圖像數(shù)據(jù))放入到圖像數(shù)據(jù)緩沖區(qū)(例如顯卡緩存)中,以使圖像處理器(例如顯卡)從中將該VR圖像數(shù)據(jù)對(duì)應(yīng)的圖像顯示在屏幕中。在此過程中,移動(dòng)設(shè)備有可能會(huì)出現(xiàn)系統(tǒng)事件,例如通話請(qǐng)求、微信視頻請(qǐng)求等操作,移動(dòng)設(shè)備控制虛擬現(xiàn)實(shí)應(yīng)用模塊暫停將VR圖像數(shù)據(jù)放入到圖像數(shù)據(jù)緩沖區(qū)中,與此同時(shí),移動(dòng)設(shè)備會(huì)將與上述請(qǐng)求相對(duì)應(yīng)的待顯示的圖像數(shù)據(jù)寫入到圖像數(shù)據(jù)緩沖區(qū)中。因而,本發(fā)明實(shí)施例提供的方法,當(dāng)移動(dòng)設(shè)備判別到寫入的圖像數(shù)據(jù)緩沖區(qū)的圖像數(shù)據(jù)為非VR圖像數(shù)據(jù)(即不能應(yīng)用于虛擬現(xiàn)實(shí)場景)時(shí),將該圖像數(shù)據(jù)轉(zhuǎn)化成能應(yīng)用于虛擬現(xiàn)實(shí)場景的標(biāo)準(zhǔn)圖像數(shù)據(jù),再將標(biāo)準(zhǔn)圖像數(shù)據(jù)寫入到圖像數(shù)據(jù)緩沖區(qū)中進(jìn)行相應(yīng)的顯示,從而,即使移動(dòng)設(shè)備發(fā)生系統(tǒng)事件請(qǐng)求,移動(dòng)設(shè)備的屏幕上顯示的圖像仍為VR圖像,用戶無需摘下VR鏡片設(shè)備再查看顯示的圖像,即無需用戶從VR視角轉(zhuǎn)變成平面視角。
在本發(fā)明實(shí)施例中,上述步驟S1中的“實(shí)時(shí)判斷寫入到圖像數(shù)據(jù)緩沖區(qū)的待顯示的圖像數(shù)據(jù)是否能應(yīng)用于虛擬現(xiàn)實(shí)場景”,具體包括:
實(shí)時(shí)讀取寫入到圖像數(shù)據(jù)緩沖區(qū)的待顯示的圖像數(shù)據(jù)的標(biāo)識(shí);所述標(biāo)識(shí)用于表示所述待顯示的圖像數(shù)據(jù)是否是應(yīng)用于虛擬現(xiàn)實(shí)場景顯示的標(biāo)準(zhǔn)圖像數(shù)據(jù);
根據(jù)所述標(biāo)識(shí)判斷所述待顯示的圖像數(shù)據(jù)是否能應(yīng)用于虛擬現(xiàn)實(shí)場景。
需要說明的是,為了區(qū)別于非VR圖像數(shù)據(jù),虛擬現(xiàn)實(shí)模塊提供的VR圖像數(shù)據(jù)都具有一個(gè)VR標(biāo)識(shí),而發(fā)生系統(tǒng)事件請(qǐng)求而提供的圖像數(shù)據(jù)是并不是VR圖像數(shù)據(jù),不具有VR標(biāo)識(shí)的,因而移動(dòng)設(shè)備可以通過判斷寫入圖像數(shù)據(jù)緩沖區(qū)的圖像數(shù)據(jù)是否具有VR標(biāo)識(shí),進(jìn)而判斷該圖像數(shù)據(jù)是否能應(yīng)用于虛擬現(xiàn)實(shí)場景。除了這個(gè)方式外,還可以通過VR圖像數(shù)據(jù)與非VR圖像數(shù)據(jù)的特定區(qū)別特征進(jìn)行判別。
在本發(fā)明實(shí)施例中,所述虛擬現(xiàn)實(shí)處理包括球面化處理,所述球面化處理具體為:
對(duì)于所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)的原始坐標(biāo)(x,y),根據(jù)球面化公式:計(jì)算出所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)在球面化后的標(biāo)準(zhǔn)坐標(biāo)(px,py);其中,R是預(yù)設(shè)的球面化曲率;
將所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)的原始坐標(biāo)替換為該像素點(diǎn)的標(biāo)準(zhǔn)坐標(biāo),完成對(duì)所述待顯示的圖像數(shù)據(jù)的球面化處理。
參圖2至圖4,圖2是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的球面化處理前的圖像的示意圖;圖3是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的球面化處理后的圖像的俯視示意圖;圖4是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的球面化處理后的圖像的側(cè)視示意圖。
下面將結(jié)合圖2、圖3和圖4描述對(duì)圖像數(shù)據(jù)對(duì)應(yīng)的圖像中的一個(gè)像素點(diǎn)在經(jīng)過球面化前后的坐標(biāo)變化過程:
如圖2所示,圖像中的一個(gè)像素點(diǎn)的原始坐標(biāo)為A(x,y),將該圖像進(jìn)行球面化,即對(duì)該圖像進(jìn)行拉伸,拉伸方向?yàn)閺钠聊焕锏狡聊煌?,如圖3所示,以俯視的視角看該圖像,拉伸后點(diǎn)A的位置變?yōu)锳`(px,py),而從側(cè)面觀看拉伸后圖片,效果如圖4所示,a`、a和O`分別為A`、A和O對(duì)應(yīng)的球面上的點(diǎn)。假設(shè)球面半徑為R,即球面化曲率,可以推算出以下:
圖4中夾角α的值為:
原點(diǎn)O到A`的距離為:
OA`=R*sin(α);
OA`與OA兩者的比例關(guān)系為:
OA`/OA=px/x=py/y;
最終結(jié)合上述三個(gè)公式計(jì)算出球面化后的坐標(biāo)(px,py):
需要說明的是,R是預(yù)設(shè)的球面化曲率,由屏幕的尺寸和VR鏡片設(shè)備的中鏡片的凸透率決定的,可根據(jù)具體情況進(jìn)行設(shè)置。
在本發(fā)明實(shí)施例中,所述虛擬現(xiàn)實(shí)處理還包括沉浸化處理,所述沉浸化處理具體為:
將已完成球面化處理的待顯示的圖像數(shù)據(jù)對(duì)應(yīng)的圖像添加在能應(yīng)用于虛擬現(xiàn)實(shí)場景的背景圖像中,進(jìn)而完成對(duì)所述待顯示的圖像數(shù)據(jù)的沉浸化處理;其中,所述背景圖像的尺寸大于所述移動(dòng)設(shè)備的屏幕的顯示尺寸。
需要說明的是,由于在虛擬現(xiàn)實(shí)應(yīng)用場景當(dāng)中,呈現(xiàn)在用戶眼前的只是整個(gè)虛擬現(xiàn)實(shí)場景中的一部分,而當(dāng)用戶旋轉(zhuǎn)視角時(shí),看到該場景的其他部分時(shí),也應(yīng)為虛擬現(xiàn)實(shí)的圖像,使用戶一直沉浸于虛擬現(xiàn)實(shí)場景當(dāng)中。因而,本發(fā)明實(shí)施例提供的沉浸化處理,可以使得用戶在旋轉(zhuǎn)視角,超出原圖像區(qū)域后,不會(huì)看到一片黑或其他扭曲的圖像,看到的仍為VR圖像的場景,能為用戶提供沉浸式的VR體驗(yàn)。
在本發(fā)明實(shí)施例中,所述虛擬現(xiàn)實(shí)處理還包括分屏處理,所述分屏處理具體為:
獲取用戶的左眼球的左視角與右眼球的右視角間的視差;
復(fù)制已完成沉浸化處理的待顯示的圖像數(shù)據(jù),獲得左眼圖像和右眼圖像;
根據(jù)所述視差調(diào)整所述左眼圖像和所述右眼圖像的視差,以分屏顯示左右眼圖像。
需要說明的是,由于在生成左眼圖像和右眼圖像時(shí),還需要考慮用戶的左眼球到左眼圖像的左視角與右眼球到右眼圖像的右視角兩者間的視差,可通過用戶佩戴的VR鏡片設(shè)備中內(nèi)置的傳感器,例如光學(xué)傳感器,獲取用戶的左眼球的左視角與右眼球的右視角間的視差,來進(jìn)行調(diào)整。視差是指從有一定距離的兩個(gè)點(diǎn)上觀察同一個(gè)目標(biāo)所產(chǎn)生的方向差異,而從目標(biāo)看兩個(gè)點(diǎn)之間的夾角,叫做這兩個(gè)點(diǎn)的視差角。
參見圖5和圖6,圖5是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的分屏處理后的圖像的裸眼效果圖;圖6是本發(fā)明提供的圖像數(shù)據(jù)處理的方法的分屏處理后的圖像的VR視角效果圖;
分屏處理的圖像數(shù)據(jù)后在屏幕中呈現(xiàn)的圖示如圖5所示,而用戶在佩戴上VR鏡片設(shè)備后所看到的圖示如圖6所示。
進(jìn)一步地,所述方法還包括:
在所述標(biāo)準(zhǔn)圖像數(shù)據(jù)顯示在所述移動(dòng)設(shè)備的屏幕之后,獲取當(dāng)前用戶的視覺焦點(diǎn)坐標(biāo);
判斷所述視覺焦點(diǎn)坐標(biāo)是否位于所述標(biāo)準(zhǔn)圖像數(shù)據(jù)在屏幕中顯示的范圍內(nèi);
若是,則判斷所述視覺焦點(diǎn)是否滿足預(yù)設(shè)的觸發(fā)條件,所述觸發(fā)條件用于表示用戶發(fā)出對(duì)所述視覺焦點(diǎn)坐標(biāo)的觸摸命令;所述觸發(fā)條件可以但不限于用戶的視覺焦點(diǎn)在所述視覺焦點(diǎn)停留的預(yù)設(shè)時(shí)間、用戶的的視覺焦點(diǎn)在所述視覺焦點(diǎn)停留時(shí)眨動(dòng)眼睛的預(yù)設(shè)次數(shù)或轉(zhuǎn)動(dòng)眼球的操作,當(dāng)滿足觸發(fā)條件即可發(fā)出觸摸命令。
若滿足所述觸發(fā)條件,則將所述視覺焦點(diǎn)坐標(biāo)轉(zhuǎn)化成所述屏幕坐標(biāo)系對(duì)應(yīng)的平面坐標(biāo);
將與所述平面坐標(biāo)對(duì)應(yīng)的用戶觸控所述屏幕的操作信息發(fā)送給所述移動(dòng)設(shè)備的操作系統(tǒng)。
需要說明的是,視覺焦點(diǎn)坐標(biāo)由用戶佩戴的VR鏡片設(shè)備檢測的,具體可通過在VR鏡片設(shè)備中設(shè)置陀螺儀,通過陀螺儀進(jìn)行檢測,也可通過在VR鏡片設(shè)備中設(shè)置光學(xué)傳感器,通過光學(xué)傳感感進(jìn)行檢測。由于屏幕上呈現(xiàn)的圖像為VR圖像,則用戶佩戴的VR鏡片設(shè)備檢測到的用戶的視覺焦點(diǎn)坐標(biāo)為以VR坐標(biāo)系為準(zhǔn)的坐標(biāo),因而在與操作系統(tǒng)進(jìn)行交互時(shí),需要將該視覺焦點(diǎn)坐標(biāo)換算成屏幕坐標(biāo)系對(duì)應(yīng)的平面坐標(biāo),進(jìn)而將該平面坐標(biāo)對(duì)應(yīng)的用戶的觸控屏幕的操作信息發(fā)送給操作系統(tǒng)進(jìn)行處理。
本發(fā)明實(shí)施例提供的圖像數(shù)據(jù)處理的方法,當(dāng)移動(dòng)設(shè)備判別到寫入到圖像數(shù)據(jù)緩沖區(qū)的圖像數(shù)據(jù)為非VR圖像數(shù)據(jù)時(shí),將該圖像數(shù)據(jù)轉(zhuǎn)化成能應(yīng)用于虛擬現(xiàn)實(shí)場景的標(biāo)準(zhǔn)圖像數(shù)據(jù),再將標(biāo)準(zhǔn)圖像數(shù)據(jù)寫入到圖像數(shù)據(jù)緩沖區(qū)中進(jìn)行相應(yīng)的顯示,從而,即使移動(dòng)設(shè)備發(fā)生系統(tǒng)事件請(qǐng)求,移動(dòng)設(shè)備的屏幕上顯示的圖像仍為VR圖像,用戶無需摘下VR鏡片設(shè)備再查看顯示的圖像,即無需用戶從VR視角轉(zhuǎn)變成平面視角與操作系統(tǒng)進(jìn)行交互,可以在VR視角下無縫地與操作系統(tǒng)進(jìn)行交互。
參見圖7,是本發(fā)明提供的圖像數(shù)據(jù)處理的裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;該裝置為軟系統(tǒng),設(shè)置在移動(dòng)設(shè)備內(nèi),該圖像數(shù)據(jù)處理的裝置,包括:
實(shí)時(shí)判斷模塊10,用于在運(yùn)行虛擬現(xiàn)實(shí)應(yīng)用時(shí),實(shí)時(shí)判斷寫入到圖像數(shù)據(jù)緩沖區(qū)的待顯示的圖像數(shù)據(jù)是否能應(yīng)用于虛擬現(xiàn)實(shí)場景;
圖像轉(zhuǎn)化處理模塊20,用于當(dāng)所述待顯示的圖像數(shù)據(jù)不能應(yīng)用于虛擬現(xiàn)實(shí)場景時(shí),從所述圖像數(shù)據(jù)緩沖區(qū)中提取所述待顯示的圖像數(shù)據(jù),通過虛擬現(xiàn)實(shí)處理將所述待顯示的圖像數(shù)據(jù)轉(zhuǎn)化成能應(yīng)用于虛擬現(xiàn)實(shí)場景的標(biāo)準(zhǔn)圖像數(shù)據(jù);
圖像數(shù)據(jù)顯示模塊30,用于將所述標(biāo)準(zhǔn)圖像數(shù)據(jù)寫入所述圖像數(shù)據(jù)緩沖區(qū),以使所述標(biāo)準(zhǔn)圖像數(shù)據(jù)顯示在屏幕中。
進(jìn)一步,參見圖8,是本發(fā)明提供的圖像數(shù)據(jù)處理的裝置的實(shí)時(shí)判斷模塊的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;該實(shí)時(shí)判斷模塊10包括:
標(biāo)識(shí)讀取單元11,用于實(shí)時(shí)讀取寫入到圖像數(shù)據(jù)緩沖區(qū)的待顯示的圖像數(shù)據(jù)的標(biāo)識(shí);所述標(biāo)識(shí)用于表示所述待顯示的圖像數(shù)據(jù)是否是應(yīng)用于虛擬現(xiàn)實(shí)場景顯示的標(biāo)準(zhǔn)圖像數(shù)據(jù);
標(biāo)識(shí)判斷單元12,用于根據(jù)所述標(biāo)識(shí)判斷所述待顯示的圖像數(shù)據(jù)是否能應(yīng)用于虛擬現(xiàn)實(shí)場景。
進(jìn)一步地,所述虛擬現(xiàn)實(shí)處理包括球面化處理,所述球面化處理具體為:
對(duì)于所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)的原始坐標(biāo)(x,y),根據(jù)球面化公式:計(jì)算出所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)在球面化后的標(biāo)準(zhǔn)坐標(biāo)(px,py);其中,R是預(yù)設(shè)的球面化曲率;
將所述待顯示的圖像數(shù)據(jù)中的每一個(gè)像素點(diǎn)的原始坐標(biāo)替換為該像素點(diǎn)的標(biāo)準(zhǔn)坐標(biāo),完成對(duì)所述待顯示的圖像數(shù)據(jù)的球面化處理。
進(jìn)一步地,所述虛擬現(xiàn)實(shí)處理還包括沉浸化處理,所述沉浸化處理具體為:
將完成球面化的待顯示的圖像數(shù)據(jù)對(duì)應(yīng)的圖像添加在能應(yīng)用于虛擬現(xiàn)實(shí)場景的背景圖像中;其中,所述背景圖像的尺寸大于所述屏幕的顯示尺寸。
進(jìn)一步地,所述虛擬現(xiàn)實(shí)處理還包括分屏處理,所述分屏處理具體為:
獲取用戶的左眼球的左視角與右眼球的右視角間的視差;
復(fù)制已完成沉浸化處理的待顯示的圖像數(shù)據(jù),獲得左眼圖像和右眼圖像;
根據(jù)所述視差調(diào)整所述左眼圖像和所述右眼圖像的視差,以分屏顯示左右眼圖像。
進(jìn)一步地,所述裝置還包括:
焦點(diǎn)坐標(biāo)接收模塊40,用于在所述標(biāo)準(zhǔn)圖像數(shù)據(jù)顯示在所述移動(dòng)設(shè)備的屏幕后,獲取當(dāng)前用戶的視覺焦點(diǎn)坐標(biāo);
焦點(diǎn)坐標(biāo)判斷模塊50,用于判斷所述視覺焦點(diǎn)坐標(biāo)是否位于所述標(biāo)準(zhǔn)圖像數(shù)據(jù)在屏幕中顯示的范圍內(nèi);
觸發(fā)判斷模塊60,用于當(dāng)所述視覺焦點(diǎn)坐標(biāo)位于所述范圍內(nèi)時(shí),判斷所述視覺焦點(diǎn)是否滿足預(yù)設(shè)的觸發(fā)條件,所述觸發(fā)條件用于表示用戶發(fā)出對(duì)所述視覺焦點(diǎn)坐標(biāo)的觸摸命令;
坐標(biāo)轉(zhuǎn)化模塊70,用于當(dāng)所述視覺焦點(diǎn)滿足所述觸發(fā)條件時(shí),將所述視覺焦點(diǎn)坐標(biāo)轉(zhuǎn)化成所述屏幕坐標(biāo)系對(duì)應(yīng)的平面坐標(biāo);
操作信息發(fā)送模塊80,用于將與所述平面坐標(biāo)對(duì)應(yīng)的用戶觸控所述屏幕的操作信息發(fā)送給操作系統(tǒng)。
本發(fā)明實(shí)施例提供的圖像數(shù)據(jù)處理的裝置,當(dāng)移動(dòng)設(shè)備判別到寫入到圖像數(shù)據(jù)緩沖區(qū)的圖像數(shù)據(jù)為非VR圖像數(shù)據(jù)時(shí),將該圖像數(shù)據(jù)轉(zhuǎn)化成能應(yīng)用于虛擬現(xiàn)實(shí)場景的標(biāo)準(zhǔn)圖像數(shù)據(jù),再將標(biāo)準(zhǔn)圖像數(shù)據(jù)寫入到圖像數(shù)據(jù)緩沖區(qū)中進(jìn)行相應(yīng)的顯示,從而,即使移動(dòng)設(shè)備發(fā)生系統(tǒng)事件請(qǐng)求,移動(dòng)設(shè)備的屏幕上顯示的圖像仍為VR圖像,用戶無需摘下VR鏡片設(shè)備再查看顯示的圖像,即無需用戶從VR視角轉(zhuǎn)變成平面視角與操作系統(tǒng)進(jìn)行交互,可以在VR視角下無縫地與操作系統(tǒng)進(jìn)行交互。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍。