专利名称:处理映射在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·杜奎斯诺伊斯 申请人:皇家菲利浦电子有限公司