專利名稱:處理映射在3d對象上的2d圖像的方法
技術領域:
本發明涉及一種由三維對象組成的圖像中處理圖像的方法,所述方法包括一個將一個二維圖像映射到一個三維對象表面的步驟。本發明用于例如在ICT產業,尤其是在視頻游戲方面。
背景技術:
目前,尤其是在視頻游戲的設計中使用三維對象(以下稱為3D對象)在屏幕上的投影。許多接口被稱作HAL(硬件抽象層),允許通過易于理解的在用于設計的軟件語言和允許3D圖像投影的圖像卡之間的接口使設計簡單化。一些這樣的接口允許二維圖像(以下稱為2D圖像)在3D對象的表面應用。這稱之為“映射”。例如,可能將一幅掛毯以3D形式影射到一面墻上,或者將織物影射到3D立體表面上。此外,數字視頻的發展,例如以MPEG格式,允許在視頻世界和3D世界之間交互作用。因此,用于3D圖像的某些設計語言允許在這些圖像中的視頻圖像的進一步用途。這里給出一個實例,例如,在標準ISO/IEC14772-11997中描述的VRML語言(虛擬現實模型語言)。這種語言是一種場景描述語言,它提供在3D對象表面上映射MPEG格式的視頻圖像的特定的可能性。這種語言允許在3D對象表面上映射固定的圖像。VRML語言描述了通過不同結點的樹形結構的方式的場景。這種場景通過文本文件進行描述。一個2D圖像通過“圖像織物”結點的虛擬來映射到3D對象上,并且視頻映射通過“電影織物”結點的虛擬來實現的。
發明內容
本發明的一個目的是提出一種方法,允許在用戶和固定2D圖像或映射在3D對象表面上的視頻圖像之間交互作用。
根據本發明,在開始的段落中描述的方法的其特征在于,該方法包括用戶和映射在三維對象上的二維圖像之間的交互的步驟,所述交互作用步驟將使用戶能夠在三維對象表面上轉換全部或部分二維圖像。
本發明考慮了以下方面。當用戶在3D對象表面上映射2D固定圖像或視頻圖像時(“圖像”一詞在下文既指固定圖像又指視頻圖像),圖像獲得這一表面的大小,并且不可能與根據這一操作結果的內容交互作用。例如,需要在3D對象表面上轉換圖像,或如果圖像可以分成幾個部分時進行部分圖像的轉換。
根據現有技術,用戶可以在2D平面上轉換圖像。例如,MPEG-4標準允許用戶與視頻對象交互作用,允許用戶在視頻對象的顯示窗口上轉換該對象的全部或部分。
以下的規則使用戶能夠通過采用特別的個部分之間的關系轉換映射在3D對象上的2D圖像。每一個3D對象包含在一個3D框架中,該3D框架為包含該問題中對象的最小平行六面體矩形。當用戶希望選擇一個3D對象的表面時,他在所述表面上定位游標,游標的位置由鼠標來控制,然后點擊鼠標。在觀察點和用戶點擊的位置之間的虛擬半徑能夠確定用戶希望選擇的哪一個框架(也就是哪個對象)以及該框架的哪一個表面。通過在所選的框架的表面上的3D的對象表面上的虛擬投影,能夠知道用戶希望選擇的對象表面,以及用戶希望選擇的該表面的點。該點對應于2D圖像或該圖像的一部分映射在表面上的位置。例如,在MPEG-4視頻圖像情況下,該點可能對應于在顯示窗口的視頻圖像的一部分的位置。問題是獲得在顯示窗口中該點的坐標,例如在2D中。獲得3D對象表面的3D坐標以及由用戶選擇的3D對象表面上的點的3D坐標,根據重心計算機的坐標轉換允許在一個對應的2D平面上獲得該點的2D坐標,例如,對于顯示窗口,一旦知道該點的2D坐標,問題便成為現有技術已經解決的2D問題。當用戶轉換這一點時,例如,通過由鼠標控制的游標裝置,該點首先被轉換到2D平面上,例如,顯示窗口向該2D平面上的其它點。由于該其它點的2D坐標是已知的,以上描述的同一類型的坐標轉換允許該其它點的3D坐標已知。利用鼠標的優勢,因此用戶能轉換其在3D表面描述上選擇的點,因此能夠轉換用戶所選擇的圖像或圖像的一部分。
該方法的優點是允許在3D對象表面更有靈活性的映射2D圖像。實際上,用戶可以將位于描述位置的圖像放置于3D對象表面上,并且如他所希望的通過簡單使用將圖像轉換到這一表面上,例如,連接在計算機上的鼠標。該方法使設計者感興趣,例如,在3D對象表面創建平圖,既可以固定也可以移動。實際上,2D形式的拼圖是圖像的幾個部分組裝起來的。在最初的階段,圖像被分成幾個部分,這幾個部分在游戲區是隨機分布的,游戲區可以是計算機屏幕或屏幕的一個窗口。用戶隨之轉換每一塊以使重新組合初始圖像,其中每一塊能夠通過在塊上定位游標的位置以及通過連接到計算機上的鼠標裝置控制游標的轉換。通過根據本發明的方法的特點,游戲區域可以是3D對象的表面。應該注意這種拼圖可以包括MPEG-4格式的視頻圖像的幾個部分。而且,該方法具有多種用途,并且不限于在3D對象的表面上拼圖設計。
本發明及附加特征可以實現本發明的優點,以下更詳細的描述參考下面的附圖圖1是描述本發明特征的示意圖;圖2是允許3D環境的設計結構的一個例子的示意圖;圖3a,3b,3c是包含3D對象的平行六面體框架(約束框架)的例子的示意圖;圖4是允許包含3D對象的約束框架的表面的選擇的技術的示意圖;圖5是允許3D對象的表面的選擇的技術的示意圖;圖6給出了從3D坐標轉換到2D坐標的例子;圖7給出了在圖像被映射到3D對象表面之前的圖像形狀轉換的例子。
實施例詳細描述圖1描述了本發明的特征。采用本發明的方法的系統包括一中央計算機單元11,控制游標19的鼠標12,用來顯示3D對象的計算機屏幕13可顯示例如平行六面體14,在其表面上諸如圖像15這樣的2D圖像可以被映射。
所述的例子適用于像圓柱體17這樣的3D圖像、立方體16或平行六面體14。在這一例子中,圖像15被映射到平行六面體14的表面之一14a上。在該拼圖的情況下,圖像15可以作為該拼圖的一塊。當用戶希望轉換圖像15,他可以使用連接到中央計算機單元11上的鼠標12,以便將游標19轉換到計算機屏幕13上的第一圖像15的位置。用戶隨之可以點擊鼠標12的一鍵,以便選擇圖像15。然后,用戶可以通過鼠標12裝置來轉換圖像15,以便將其放置于平行六面體14的表面14a的另一個位置。在拼圖的情況下,平行六面體14的表面14a可以表示游戲區域,并且游戲的目的是轉換每一塊映射到表面14a的圖像,以便重新構成拼圖的初始圖像。應該注意鼠標12可以由多個控制設備代替,這些控制設備例如,手柄,信號槍或用戶手指;在下面例子里,計算機屏幕13為觸摸屏。
圖2描述了允許3D環境設計的結構。所述的實例用于在VRML語言中的設計。該結構包含軟件21,VRML接口22,HAL接口23和圖形卡24。
HAL接口23,例如OpenGL,提供了識別用于創建軟件21的語言和圖形卡24之間連接的可能性。HAL接口23是一個3D圖形庫,例如,基于原始的3D圖形的設計,攝影位置,光,將要被映射到3D對象表面上的圖像以及其他這種類型的信息,其改變諸如標記,屏幕上的個部分之間的關系或者由3D對象去除隱藏部分。隨后,對圖形卡24尋址,以便給出3D對象顯示所需的元素。因此,HAL接口23允許3D環境通過不使用圖形卡24進行設計,唯一必須的是用于設計的語言(這里是VRML)和HAL接口23之間的適應性。VRML接口22通過將文本語言VRML語言轉換為HAL接口23能理解的語言例如C++語言來確保這種適應性。類似地,圖形卡24可以通過不考慮必須顯示的3D環境的軟件語言來設計,唯一必須考慮的是的是用于圖形卡24的語言和HAL接口23之間的適應性。
圖3a,3b和3c描述了包括3D對象的約束框架的例子。
圖3a給出了包含一個圓柱體的約束框架的例子。框架的高度和寬度等于圓柱體的直徑,并且其長度等于圓柱體的長度。圖3b給出了包含非直角的平行六面體的約束框架。框架的高度等于非直角的平行六面體的表面之一的斜對角線,并且其寬度等于這一表面的另一斜對角線,其長度等于該非直角平行六面體的長度。圖3c給出了包含一個復雜對象的約束框架。該框架的維數由復雜對象的維數的函數來計算,以便約束其最大尺寸。應該注意的是,對于一個立方體,包括該立方體的約束框架融合到這個立方體中。這與平行六面體矩形是相同的。
圖4表示允許的包括選擇組成3D對象的約束框架表面的技術。所述的實例適用于包括對象的45的約束框架46。
當用戶希望選擇對象45的表面之一時,第一步由選擇約束框架46的一個表面組成。用戶在計算機屏幕13上點擊一個點42,例如,當游標19定位在點42,用戶按下鼠標12的一個鍵。然后虛擬半徑47被計算出來,且連接到屏幕上的虛擬觀察點41和點42。該觀察點是位于計算機屏幕13之外的點,該點為固定點,并且相應于諸如用戶所坐的計算機屏幕13前面的中間點。虛擬半徑47與包含3D對象的約束框架遇到的第一個交點隨后被計算出來。在這一例中,第一個遇到的約束框架是包含對象45的約束框架46。可以獲得交點43。應該注意的是,通常虛擬半徑與一個包含3D對象的約束框架具有二個交點。剩余的交點將是位置離計算機屏幕13最近的一個點。所選的約束框架46的一個表面是包含交點43的表面。所選的對象45的表面與虛擬半徑47的交點是一個被選擇的點44。所選擇的對象45的表面的確定將參考圖5將進行更詳細的描述。
圖5表示允許選擇3D對象的一個表面的技術。此處的實例用于對象45表面的選擇,其中被選擇的約束框架46的表面和交點43為已知。
以下的規則允許對象45的表面的選擇。對象45被投影到所選擇的約束框架46的表面以獲得投影56。該投影包括5個向量,根據對象45的表面或部分表面被記為51到55。包含交點43的向量被保留,例如,本例中表示的向量51。被選擇的對象45的表面因此成為向量51在投影56中對應的表面。因此,由圖4和圖5表示的技術提供了這樣一種可能性,根據用戶選擇的計算機屏幕13上的點42,用戶希望選擇的對象表面的3D坐標成為已知的。這種技術也提供了獲得被選擇的點44的3D坐標的可能性,點44為虛擬半徑和用戶選擇的對象表面的交點。在例如拼圖的情況下,被選擇的點44可以對應拼圖中的一塊位置,并且被選擇的對象表面可以對應游戲區。當用戶希望轉變定位在被選擇的點44上的塊以便將其置于被選擇的表面上的另一個位置時,用戶通過鼠標裝置12點擊被選擇的點44,并且在移動鼠標時保持點擊。為使這一行成為可能,應該知道在游戲區域中塊是如何轉換的,例如,在2D環境中用戶將其轉換到3D環境中。坐標必須轉換為已知,例如,游戲區域中被選擇的點44的坐標。這種坐標的轉換將參考圖6進行更詳細的描述。
圖6給出了一個將3D坐標轉換為2D坐標的實例。該實例適用于一個3D對象的具有4個頂點A,B,C和D(ABCD表面)的表面的第一點K。在實例中將ABCD表面考慮為矩形,但是下面描述的方法類似地用于,例如,被選擇的具有任意形狀的對象45的表面的被選擇的點44。這里描述的該方法的對象在對應的平面A″B″C″D″上將第一點K的3D坐標轉換成第三點K″的2D坐標,例如,在拼圖的情況下的游戲區域或在視頻圖像情況下的顯示窗口。
第一步是將第一點K的3D坐標轉換為參考框架A′B′C′D′上的第二點K′的2D坐標,A′B′C′D′是平面參考框架1,例如,A′具有坐標(0,0),B′(1,0),C′(1,1)以及D′(0,1)。對于這一終點,權重α,β,γ,δ由K計算,將通過向量關系的特點成為A,B,C和D的重心,對于ABCD表面每一點M的有效值,此處MA指MA向量,同時和(α+β+γ+δ)不等于0αMA+βMB+γMC+δMD=(α+β+γ+δ)MK可以看出該等式的結論,一方面,通過將該向量關系投影到任意向量,由于這一向量既不垂直于ABCD平面,也不包括在ABCD平面上,根據3個代數方程可以獲得,另一方面,可以通過選擇點O作為具有3D坐標(0,0,0)的點M來獲得第四個代數方程,這就意味著α+β+γ+δ=1。權重值α,β,γ和δ通過解4個方程組來計算4個未知量。點K′為帶有相關系數α,β,γ,δ的點A′B′C′和D′的重心。下面A″B″C″D″平面的類似確定可以從參考框架A′B′C′D′獲得,并且這種相似用于點K′按順序獲得K″的2D坐標。由于用戶希望選擇的3D對象的點和面目前都已知,在對應的平面中選擇的點的對應點,例如,在拼圖情況下的游戲區域或在視頻圖像情況下的顯示窗口為已知。這樣,用戶能夠利用鼠標裝置12或其他的控制設備在被選擇表面上轉換被選擇的點。應該注意的是,這一操作甚至可以是移動的3D對象,并且參考圖4至圖6描述的技術將是同樣的情況。
圖7給出了在圖像影射到3D對象上之前轉換圖像形狀的例子。一定的軟件語言,例如VRML允許圖像按用戶希望映射到3D對象上的圖像形狀改變。例如,在拼圖的情況下,用戶可以將游戲區域變形,或者在視頻圖像情況下,用戶可以將顯示窗口變形。這參考框架A′B′C′D′變形的結果。圖7給出3個實例,參考框架A′B′C′D′進行轉換,第一例表明框架A1B1C1D1進行的第一轉換,第二例表明參考框架A2B2C2D2進行的第二轉換,第三例表明參考框架A3B3C3D3進行的第三轉換。當點K′被確認時,追加的步驟必須提前計算點K′的坐標。在第一轉換的情況下,可以參考框架A′B′C′D′按順序獲得點K″的坐標來獲得用戶在使用與A″B″C″D″類似的點之前計算第一被轉換的點K1的坐標。點K1的坐標按下面的計算求得。參數xM為點M的橫坐標,yM為點M的縱坐標。如果點K′通過點A′、B′和D′定位在一個三角形中,在這里給出的實例中,使用以下的公式xK1=xK′*(xB1-xA1)+(1-yK′)*xA1+yK′*xD1yK1=yK′*(xD1-yA1)+(1-xK′)*yA1+xK′*yB1如果點K′通過點B′、C′和D′被定位在一個三角形中,使用以下的公式xK1=1-((1-xK′)*(xC1-xD1)+yK′*(1-xC1)+(1-yK′)*(1-xB1))yK1=1-((1-yK′)*(xC1-xB1)+xK′*(1-yC1)+(1-xK′)*(1-yD1))在第二轉換的情況下的第二個被轉換的點K2的坐標和在第三轉換的情況下的第三個被轉換的點K3的坐標使用與被轉換的點K1的坐標同樣的規則。
以上參考附圖描述不作為本發明的局限。在這一方面,下面描述幾種改變形式。
圖2到圖7以VRML語言為例。本發明可以使用描述3D環境的其他語言,只要這些語言提供在3D對象表面上映射2D固定圖像或視頻圖像的可能性。
附圖的描述中使用拼圖的例子是使用本發明的一種可能。顯而易見,本發明不僅限于這一實例,而是可以用于所有在3D元素上進行映射2D元素。
原則上講,能夠根據本發明的數據處理裝置執行該方法,例如,合適的可編程計算機電路。一套包括在可編程存儲器中的組件可以使計算機電路執行這里描述的不同操作。該套組件可以裝載于可編程存儲器上,通過讀數據執行例如包括該套組件的盤片。讀操作可以通過通訊網絡裝置執行,例如,在因特網上。在這種情況下,設備供應商將在這些感興趣的配置中設置一套組件。
權利要求
1.一種在包含三維對象的圖像中處理圖像的方法,所述方法包括在三維對象表面上映射二維圖像的步驟,其特征在于,在該方法中包括在用戶和映射到三維對象上的二維圖像之間的交互作用的步驟,所述交互作用的步驟能使用戶在三維對象表面上轉換二維圖像的全部或部分。
2.根據權利要求1所述的處理圖像的方法,其特征在于,在所述交互步驟中包含子步驟—確定包括三維對象的最小平行六面體矩形,—確定由用戶選擇的所述平行六面體表面,—確定由用戶從該被選擇的平行六面體的表面選擇的三維對象的表面和點,—將被選擇的三維對象的點的三維坐標轉換為二維坐標,—將被選擇的三維對象的點轉換到二維平面上。
3.根據權利要求2所述的處理圖像的方法,其特征在于,在轉換三維對象的點的三維坐標為二維坐標的子步驟中,將要從權重的計算中確定二維坐標,其中被選擇的三維對象的點為被選擇的三維對象的表面的頂點的重心,通過使用權重,計算出二維圖像的頂點。
4.根據權利要求2所述的處理圖像的方法,其特征在于,在所述確定由用戶選擇的所述平行六面體的子步驟中將要根據一給定觀察點和用戶在屏幕上選擇的點之間的虛擬半徑確定這一表面,允許包含三維對象的圖像的顯示。
5.根據權利要求4所述的處理圖像的方法,其特征在于,在所述確定由用戶選擇的三維對象的點和表面的子步驟中,將要在所述平行六面體所選擇的的表面上對三維對象的表面進行投影,該被選擇的三維對象的表面是其投影包含虛擬半徑和被選擇的平行六面體的交點,被選擇的三維對象的點是虛擬半徑和被選擇的三維對象的表面的交點。
6.根據權利要求1所述的處理圖像的方法,其特征在于,所述交互作用步驟是通過游標裝置來實現,游標裝置的移動由鼠標控制,通過用戶在二維圖像上點擊來轉換,以便選擇所述圖像并轉換游標,以便轉換所選擇的圖像。
7.一種用于數據處理設備的計算機程序產品,該計算機程序產品包括一套組件,其一旦裝載于數據處理設備中,將使所述設備執行在上述權利要求1-6中任何一個權利要求中所述的方法。
全文摘要
一種在包含三維對象的圖像中處理圖像的方法,該方法包含在三維對象表面上映射二維圖像的步驟,在用戶和映射到三維圖像上的二維圖像間交互作用的步驟,將使用戶能夠轉換映射在三維圖像上的二維圖像的全部或部分。該方法使用戶能夠在3D對象表面上映射固定的2D圖像或視頻圖像,并且在用戶所選擇的表面上轉換其希望轉換的圖像。如果圖像包括幾個部分,例如,拼圖的一部分,用戶能夠獨立地轉換圖像的每一部分,例如,重新組合拼圖的初始圖像。
文檔編號G06T15/04GK1369865SQ0210707
公開日2002年9月18日 申請日期2002年1月26日 優先權日2001年1月30日
發明者L·M·O·杜奎斯諾伊斯 申請人:皇家菲利浦電子有限公司