用于将二维图像三维化的方法和系统的制作方法

文档序号:6429878阅读:235来源:国知局
专利名称:用于将二维图像三维化的方法和系统的制作方法
技术领域
本发明涉及图像处理技术领域。更具体地,本发明涉及将包含至少一个图层的二维图像三维化的方法和系统。
背景技术
目前,大量的图像处理软件及文档演示软件中越来越广泛地应用了图层(ImageLayer)的技术。应用了图层技术的图像处理软件包括例如Photoshop (Adobe公司产品及注册商标)、Auto CAD(Autodesk公司产品及注册商标)等,而文档演示软件包括例如PowerPoint (微软公司产品及注册商标)、Lotus Symphony (IBM公司产品及注册商标)以及Open Office (Oracle公司产品及注册商标)等。简单地讲,图层就像是含有文字或图形等元素的胶片,一张张按顺序叠放在一起,·组合起来形成页面的最终效果。图层可以将页面上的元素精确定位。图层中可以加入文本、图片、表格、插件,也可以在里面再嵌套图层。比如一个具有层关系的二维(2D)图像,其上有多个图形位于不同的层,那么类似于每一个图形都画在单独的一张透明纸上,然后所有的纸张罗列起来就是这一个完整的图像。所以,层有以下约束性(1)位于上层的图形始终可以遮挡位于下面各层的所有图形;(2)层的数量不受限制,即可以有无数多层;(3)图层不能穿插,即不存在相互遮挡的两个图层。虽然图层技术在很多图像处理软件和文档演示软件中得到了广泛应用,但是所有的图层以及诸多图层构成的图像均是二维的,而用户更希望能够编辑或者观看三维(3D)的图像(或演示文档),以获得更加逼真、身临其境的用户体验。现有技术中存在一些制作三维影像或基二维图像生成三维图像的技术方案。例如,现在得到广泛应用的三维电影,其制作过程主要是在拍摄时用两部并列安置的摄像机同时拍摄,分别模拟人的左、右眼,并且在放映或编辑时最终将其叠加在一起,使得观众可以通过三维眼镜而观赏三维效果(左眼只能看到左像、右眼只能看到右像)。再例如,现在也有将普通二维影像转换成三维影像的技术方案,其关键点在于需要复杂的算法来计算二维影像中的每一帧画面的每一个像素相对于其它像素的距离,由于每一帧二维图像中的像素量都十分巨大,导致算法复杂度增加、计算量过大。因此,虽然三维成像原理及技术现在已经比较成熟,但是现有技术中并不存在任何可以利用已有的二维图像中的图层,而方便快捷地将二维图像转换为三维图像的技术方案。

发明内容
考虑到上述存在的问题,本发明的目的之一在于提供一种将由图层组成的二维图像三维化的方法及系统。本发明的又一目的在于提供一种在无需修改二维图像中的图层本身的情况下将其三维化的方法及系统。本发明的再一目的在于提供一种在无需对二维图像中的每个像素进行逐个计算的情况下,以图层为基本单位将整个二维图像三维化的方法及系统。根据本发明的一个方面,提供了一种用于将二维图像三维化的方法,包括接收二维图像,所述二维图像中包含至少一个图层;为所述二维图像中的图层添加深度值;以及利用所添加的深度值将所述二维图像三维化。根据本发明的另一方面,提供了一种用于将二维图像三维化的系统,包括二维图像接收装置,被配置为接收二维图像,所述二维图像中包含至少一个图层;深度值添加装置,被配置为为所述二维图像中的图层添加深度值;以及三维渲染装置,被配置为利用所添加的深度值将所述二维图像三维化。根据本发明的方法和系统,通过为二维图像中的图层加入深度值,并利用公知的三维成像原理对加入深度值后的二维图像进行渲染,可以方便快捷地以图层为基本单位,将由图层组成的二维图像三维化,并且无需修改原有二维图像的图层,也无需对原有二维 图像中的每个像素逐个计算其三维位置信息。


通过对结合附图所示出的实施方式进行详细说明,本发明的上述以及其他特征将更加明显,本发明附图中相同的标号表示相同或相似的部件。在附图中,图I示出了适于用来实现本发明实施方式的示例性计算系统100的框图;图2示出了根据本发明一实施例的用于将二维图像三维化的方法的流程图;图3A示出了根据本发明一实施例的二维图像的示意图;图3B示出了根据本发明一实施例的为图3A中的二维图像中的图层添加深度值后的效果图;图4示出了根据本发明一实施例的用于将二维图像三维化的系统的框图;图5A示出了左、右眼的不同视角的示意图;图5B示出了显示三维平面图像(添加深度值后的二维图像)的方法的示意图;图5C及分别示出了按照图5B所示的方法得到的左、右眼视图;图5E示出了将图5C和的左、右眼视图叠加后而得到的最终三维图像。
具体实施例方式在下文中,将参考附图通过实施方式对本发明提供的用于将二维图像三维化的方法和系统进行详细地描述。所属技术领域的技术人员知道,本发明的多个方面可以体现为系统、方法或计算机程序产品。因此,本发明的多个方面可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明的多个方面还可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序码。可以使用一个或多个计算机可读的介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或任何以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任何合适的组合。在本文件的语境中,计算机可读存储介质可以是任何包含或存储程序的有形的介质,该程序被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读的信号介质可包括在基带中或者作为载波一部分传播的、其中体现计算机可读的程序码的传播的数据信号。这种传播的信号可以采用多种形式,包括——但不限于——电磁信号、光信号或任何以上合适的组合。计算机可读的信号介质可以是并非为计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序的任何计算机可读介质。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者任何合适的上述组合。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限 于——无线、电线、光缆、RF等等,或者任何合适的上述组合。用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言-诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络一包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的多个方面。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品。也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。下面参看图I。图I示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如所示,计算机系统100可以包括CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM (只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU IOU RAM102,ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图I所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。图2示出了根据本发明一实施例的用于将二维图像三维化的方法的流程图。图2所示的方法从步骤202开始。在步骤202中,接收二维图像,所述二维图像中包含至少一个图层。根据本发明的一个实施例,二维图像是例如PowerPoint文档、Lotus Symphony文档或Open Office文档这样的讲稿(Presentation)演示文档。根据本发明的另一个实施例,二维图像是例如Photoshop这样的图像处理软件中所生成的图片。无论二维图像具体是何种文件类型与格式,只要其由一个或多个图层组成,即可用于实现本发明的目的——将包 含至少一个图层的二维图像三维化。需要指出的是,有些情况下二维图像的背景并非一个独立的图层,在此情形下,即使二维图像仅包含一个图层,也可以对其进行三维化(相对于背景而言)。接下来图2所示的方法进行至步骤204,在步骤204中,为所接收到的二维图像中的图层添加深度值。由于二维图像只有平面上两个维度的尺寸信息(长和宽),因此为了能将二维图像三维化,必须给予其在空间第三维度上的尺寸信息。根据本发明的一个实施例,深度值表示该图层与屏幕间的距离(也可以理解为图层与背景间的距离,因为背景与屏幕通常处于同一平面)。根据本发明的另一实施例,深度值表示该图层与其它图层之间的相对距离。根据本发明的再一实施例,深度值表示该图层与观察者之间的距离。既可以为二维图像中的每个图层均添加深度值,也可以为二维图像中的部分图层添加深度值。假设某二维图像仅由两个图层组成,那么只要为其中一个图层添加了深度值,另一个图层可以默认为没有深度(即深度值为0)。关于深度值的单位,根据本发明的一个实施例,既可以直接利用二维图像平面上的长、宽尺寸单位(不同的图像处理软件或演示文档软件有不同的尺寸单位),也可以专门设定基于空间深度(第三维度)的尺寸单位。根据本发明的一个实施例,为二维图像中的图层添加深度值的方式如下首先将原始的具有层信息的二维图像放于一个三维空间内,此时这个二维图像就是三维空间的一个有着边界的矩形平面,其空间立体几何方程式为Ax+By+Cz+D = O。同样,其上每一层的图形可以认为也在是一个单独的平面上,只是目前这些所有图层平面和二维图像的平面处于重叠状态,即它们的空间立体几何方程式都为Ax+By+Cz+D = O。然后让二维图像上的一个层的图形沿着这个平面的法线方向(A,B, C)移动一定距离M,其平面的空间立体几何方程式为Ax+By+Cz+D = Μ。同理,可以让每一个层的图形都沿着这个平面的法线方向(Α,B, C)移动,移动的距离可以不同。那么每一层就具备一个不同的空间立体几何方程式。所以实际计算时,只要获得二维图像空间立体几何方程式Ax+By+Cz+D = 0,然后为每一层修改其平面方程的D值即可以获得不同的平面方程,也就使每一层处于和原来二维图像平行且距离不为零的平面中,这些平面都在一个三维空间,此时可以认为这些平面所组成的整体具备三维信息。它们距离原始二维图像所在平面间的距离,就是“深度值”。图3A和3B中示出了上述添加深度值的方法的示意图。本领域技术人员应当理解,由于二维图像在不同的图像处理软件或演示文档软件环境下可能具有不同的参数表征方式或尺寸信息的赋值方式,本领域技术人员完全可以基于上述原理针对不同软件或应用下的二维图像进行赋予深度值的操作,无论为二维图像中的图层赋予深度值的具体步骤是什么,只要为二维图像中的图层添加了深度值,即落入本发明的保护范围。由于步骤204中的添加深度值的操作是针对二维图像中的图层进行的,因此每个图层上的所有像素点均具有相同的深度值,而无需像现有技术中那样针对每个像素点计算其相对于其它像素点的空间相对位置信息。还需要指出的是,根据本发明的一个实施例,可以为二维图像中的各个级别的图层设置不同的默认深度值,所设置的默认深度值是独立于具体的二维图像的。只要在用户·针对具体的二维图像激活了三维化操作,则自动将预设的默认深度值添加到所述具体的二维图像的各个图层中。根据本发明的另一实施例,可以在将具体的二维图像三维化的过程中接收实时指定的深度值(可以替代默认深度值,或者不存在预设的默认深度值而直接实时指定),并将实时指定的深度值添加到具体的二维图像的相应图层中。这两个实施例的内容在下文中有明确体现。接下来,图2所示的方法进行至步骤206。在步骤204中为二维图像的图层添加了深度值,使二维图像具有了全面的三维信息,但是并不意味着已经生成了三维图像。步骤206所执行的操作就是利用所添加的深度值将二维图像三维化,也就是将添加了深度值的二维图像渲染为三维图像。本领域技术人员应当理解,在拥有图像的全面三维信息的前提下,将二维图像渲染成最终的三维图像可以通过生成左、右两眼的两幅二维图像并叠加两幅二维图像实现,这属于本领域的公知技术常识。虽然如此,依然在图5中对渲染三维图像的方法进行介绍。通过图2所示的方法,由于为二维图像中的图层加入了深度值,并利用公知的三维成像原理对加入深度值后的二维图像进行渲染,可以方便快捷地以图层为基本单位,将由图层组成的二维图像三维化,并且无需修改原有二维图像的图层,也无需对原有二维图像中的每个像素逐个计算其三维位置信息。根据本发明的一个实施例,步骤204中的为所接收到的二维图像中的图层添加深度值包括为所述二维图像中的图层添加相应的缺省深度值,其中缺省深度值是为二维图像的图层级别预先设定的。此时,所预先设定的缺省深度值并非针对具体的二维图像。根据本发明的另一实施例,步骤204中的为所接收到的二维图像中的图层添加深度值包括为所述二维图像中的图层添加实时指定的深度值。也就是说,即使有了预设的缺省深度值,用户可能针对具体的二维图像有不同的渲染需求,因此可能对深度值有个性化的设置或调整。根据本发明的一个实施例,步骤206中的利用所添加的深度值将二维图像三维化包括利用三维几何匹配算法,由含有添加了深度值的图层的二维图像生成对应于观察者两眼的两幅二维图像,以便将所生成的两幅二维图像合并为三维图像。需要指出的是,本领域技术人员可以采用多种三维图像渲染的方式,在获取了二维图像的全面三维信息(深度值)的前提下,无论采用何种方式将二维图像渲染成三维图像,均落入本发明的保护范围。还需要指出的是,既可以先将对应于观察者两眼的两幅二维图像分别存储下来,以便在展示或放映时才将其合并生成三维图像,也可以直接将两幅二维图像合并生成三维图像。图3A示出了根据本发明一实施例的二维图像的示意图。图3A中的二维图像包含四个图层,第一个图层是标记为“Back Ground”的背景图层,第二个图层是标记为“ascsad”的椭圆形图层,第三个图层是标记为“dsds”的矩形图层,第四个图层是没有任何标记的五角星形图层。图3B示出了为图3A的二维图像中的图层添加深度值后的效果图。从图3中可以看出,标记为“Back Ground”的背景图层经添加了深度值后的的空间立体几何方程式为 Ax+By+Cz = 0,标记为“ascsad”的椭圆形图层经添加了深度值后的空间立体几何方程式为Ax+By+Cz = M1,标记为“dsds”的矩形图层经添加了深度值后的空间立体几何方程式为Ax+By+Cz = M2,没有任何标记的五角星形图层经添加了深度值后的的空间立体几何方程式为Ax+By+Cz =M3。由于Ml关M2关M3关0,因此经添加了深度值后的二维图像中的四个图层即在空间深度上得以区分。需要指出的是,仅仅为每个图层添加了深度值之后并不能立即出现立体的效果,图3B中所示出的立体透视效果仅仅是为了说明添加深度值的目的和作用。图4示出了根据本发明一实施例的用于将二维图像三维化的系统的框图。图4所示的系统在整体上由系统400表示。具体地,系统400中包括二维图像接收装置401,被配置为接收二维图像,所述二维图像中包含至少一个图层;深度值添加装置402,被配置为向所述二维图像中的图层添加深度值;以及三维渲染装置403,被配置为利用所添加的深度值将所述二维图像三维化。本领域技术人员应当理解,系统400中的装置401-403分别对应于图2所示的方法中的步骤202、204和206,在此不再赘述。下面结合图5A至5E来具体介绍将已经具备了空间深度信息的二维图像渲染为三维立体图像的方法,也就是三维几何匹配算法。图5A示出了左、右眼的不同视角的示意图。由图5A中可以看出,对于一件具有立体形状的物体,人的左眼和右眼看到的视图是不同的。这也是渲染三维立体图像的基础原理和出发点。图5B示出了显示三维平面图像(添加深度值后的二维图像)的方法的示意图。从图5B中可以看出,在四个图层所在的三维空间内设置两个不同位置的点Pleft和PHght,分另Ij代表人的左眼和右眼,其两点连线为向量LleftIight。然后设置一个垂直于LlrftIight的向量H(x,y,z)代表人头向上的方向。再设置一条向量丫匕^^山且丫垂直于^口^^邮组成平面。V代表人眼睛视角的方向。然后分别以点Plrft和Lght为基点,H为向上方向,V为视锥方向建立两个三维投影视锥。利用计算图形学基础的三维视锥变换方法,将二维图像那些三维平面分别通过这两个三维投影视锥渲染出来,每一个视锥得到一个二维图像,分别代表左眼和右眼可以看到的二维图像,设为Imageleft和Imageright。图5C及分别示出了按照图5B所示的方法得到的左、右眼视图Imageleft和Imageright。接下来,将这两个二维图像叠加并输出到三维显示设备里显示最终的三维效果。这里所指的三维显示设备是指可以保证人在观察时,左眼只能看到Imageleft,右眼只能看至IJ Imageright。比如主动立体显示器,与其搭配的是主动立体眼镜。在显示器上交替显示ImagelefJP ImageHght这两幅图像,同时发送信号给主动立体眼镜,进行镜片的偏光遮挡。当显示器上显示Imageleft时,让主动立体眼镜的左眼镜片允许看到图像,右眼镜片则偏光遮挡无法看到任何图像。同理,当显示器上显示Imageright时,让主动立体眼镜的右眼镜片允许看到图像,左眼镜片则偏光遮挡无法看到任何图像。当这个交替的频率在每秒60次以上时,人眼就不会感觉到每个镜片的遮挡效果,而只会看到每个镜片所只能看到那个图像,由此保证了左眼永远只能看到ImageHght,而右眼永远只能看到Imageright。图5E即示出了将图5C和的左、右眼视图叠加后而得到的最终三维图像。最终的三维立体效果可以在佩戴有合适的三维眼镜之后在观众眼中得以呈现。附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要·注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。虽然以上结合具体实例,对本发明的利用远程应用处理本地文件的系统及方法进行了详细描述,但本发明并不限于此。本领域普通技术人员能够在说明书教导之下对本发明进行多种变换、替换和修改而不偏离本发明的精神和范围。应该理解,所有这样的变化、替换、修改仍然落入本发明的保护范围之内。本发明的保护范围由所附权利要求来限定。
权利要求
1.一种用于将二维图像三维化的方法,包括 接收二维图像,所述二维图像中包含至少一个图层; 为所述二维图像中的图层添加深度值; 利用所添加的深度值将所述二维图像三维化。
2.如权利要求I所述的方法,其中为所述二维图像中的图层添加深度值包括 为所述二维图像中的图层添加相应的缺省深度值,其中缺省深度值是为二维图像的图层级别预先设定的。
3.如权利要求I所述的方法,其中为所述二维图像中的图层添加深度信息包括 为所述二维图像中的图层添加实时指定的深度值。
4.如权利要求I所述的方法,其中图层的深度值表示下列含义中的至少一个 该图层与屏幕间的距离、该图层与其它图层之间的相对距离或者该图层与观察者之间的距离。
5.如权利要求1-4任一所述的方法,其中利用所添加的深度值将所述二维图像三维化包括 利用三维几何匹配算法,由含有添加了深度值的图层的二维图像生成对应于观察者两眼的两幅二维图像,以便将所生成的两幅二维图像合并为三维图像。
6.一种用于将二维图像三维化的系统,包括 二维图像接收装置,被配置为接收二维图像,所述二维图像中包含至少一个图层; 深度值添加装置,被配置为为所述二维图像中的图层添加深度值; 三维渲染装置,被配置为利用所添加的深度值将所述二维图像三维化。
7.如权利要求6所述的系统,其中深度值添加装置被配置为 为所述二维图像中的图层添加所设置的相应的缺省深度值,其中缺省深度值是为二维图像的图层级别预先设定的。
8.如权利要求6所述的系统,其中深度值添加装置被配置为 为所述二维图像中的图层添加实时指定的深度值。
9.如权利要求6所述的系统,其中图层的深度值表示下列含义中的至少一个 该图层与屏幕间的距离、该图层与其它图层之间的相对距离或者该图层与观察者之间的距离。
10.如权利要求6-9任一所述的系统,其中三维渲染装置被配置为 利用三维几何匹配算法,由含有添加了深度值的图层的二维图像生成对应于观察者两眼的两幅二维图像,以便将所生成的两幅二维图像合并为三维图像。
全文摘要
本发明涉及图像处理技术领域。更具体地,本发明涉及将包含至少一个图层的二维图像三维化的方法和系统。本发明提供了一种用于将二维图像三维化的方法,包括接收二维图像,所述二维图像中包含至少一个图层;为所述二维图像中的图层添加深度值;以及利用所添加的深度值将所述二维图像三维化。根据本发明的方法和系统,通过为二维图像中的图层加入深度值,并利用三维成像原理对加入深度值后的二维图像进行渲染,可以方便快捷地以图层为基本单位,将由图层组成的二维图像三维化,并且无需修改原有二维图像的图层,也无需对原有二维图像中的每个像素逐个计算其三维位置信息。
文档编号G06T17/00GK102903143SQ20111021914
公开日2013年1月30日 申请日期2011年7月27日 优先权日2011年7月27日
发明者王喆 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1