三维图形的产生方法

文档序号:6416789阅读:658来源:国知局
专利名称:三维图形的产生方法
技术领域
本发明涉及一种三维图形的产生方法,是利用电脑将数字化的平面图形,以重新处理其前景像素亮度的方式,使之在视觉上具有立体效果的技术。
传统产生三维图形的先决条件是先要在三维空间建立一标准的三维模型,然后为这个三维模型选定一欲呈现的材质,并设定投射于三维模型的光源与三维模型的相对位置,再以一三维引擎依据前述设定好的条件对三维模型进行渲染,方可获得一具立体效果的图形。虽然这种方法的准确度佳,但是过程复杂,所产生的三维图形也会占用较多的存储空间。然而对于仅具有平面信息(X、Y轴方向的参数)的二维图形而言,想想使之具有三维图形的立体效果,若以上述方法便不适了。这是因为在一般的二维图形中,缺少了产生三维图形所需的第三座标轴(Z轴方向)的参数,因此无法将一个只有平面信息的二维图形,直接通过光源投射方向的设定以及三维引擎的渲染程序,使其具有与三维图形相同的立体效果。
本发明的主要目的在于提供一种将二维图形转换为视觉上的三维图形的方法,应用在目前的电脑工作平台中,用以将一幅原本只具有平面效果的图片,藉由本发明所揭示的方法,直接转换成一幅在视觉观感上具有立体效果的图片。
为使在描述本发明的技术时更为详尽、准确,先将本文用到的名词先作如下说明底平面目的图形所在的平面。
法线对于立体空间中曲面上的一点,该点的法线是一条经过该点,并且与该点的切面垂直的直线。
法线方向某一点的法线是一条向两端无限延伸的直线,并没有单一的方向。本文所指的法线方向特指法线朝向物体外部的延伸方向。
法线投影方向在本文中,法线投影方向是指法线方向在底平面上的投影,它的值可以用一个二维向量来表示。
向量用于表示空间中具有方向和大小的量,在二维空间中的向量有两个分量,包括有X轴方向与Y轴方向,以M[x][y]表示;在本文中以Dx[x][y]、Dy[x][y]表示法线投影方向在x轴与y轴方向上的分量。
图像泛指未经处理的二维图形,在本文中以O[x][y]表示。
目的图形被包含在图像之中,是由前景像素所构成,且为转换成三维图形的主角。
二色图是由前景像素与前景图像所组成以I[x][y]表示之,其中前景图像用以表示图像中目的图形的像素(如中文字形);背景像素则是用以表示图像中非目的图形的像素(即为目的图形的产部分)。
亮度目前颜色表示的格式有多种,本文所提的HLS是一种常用的格式,其中H表示色调,S表示饱和度,L表示亮度,亮度表是颜色的明暗程度,当一个像素受到光线的直射的时候,它会具有较高的亮度;当它处于阴影中时,其亮度就较低。
一般而言,对于一个只有漫反射的平面来说,它的反射光强度(亮度)I漫射与观察角度无关,而是与入射光强度I入射及光的入射角A有关,其关系可用公式(A)表示I漫射=KI入射cosA(A)其中K为常数,入射光强度I入射为一定值,所以,在物体表面上某一点漫射光的强度主要与入射光方向及与该点法线方向的夹角有关。
本发明中图形转换的基本原理对于一帧只具有平面效果的数字化图像O[x][y]10,在其底平面11上的任一像素的法线方向12a都为垂直向上的(如图1所示);但是当它经处理而使其中央部分向上隆起时,在中央部分13的像素的法线方向12b则会向四周倾斜(如图2所示),因此要计算边缘部分14的像素的亮度值,就需要计算出这些改变了的法线方向12b。由于我们目前仅有的信息是一幅只具有平面效果的数字化图像o[x][y]10,因此,要准确计算这些法线方向12b是不可能的。现实的方法是计算这些法线方向12b在底平面11上的投影(法线投影方向15),然后,根据法线投影方向15与光线投影方向(即光线在底平面上的投影)所形成的夹角值α151,来计算像素的亮度,以代替前述公式(A)中的光的入射角A。
在下文中,将揭示本发明所提的平面图像的处理方法,用以计算法线投影方向;首先是将一数字化的图像O[x][y]转为二色图I[x][y],其转换方式是将原图像O[x][y]中属于背景的像素以“0”表示,属于前景的像素以“1”表示,产生一与原图像O[x][y]对应的二色图I[x][y];然后再根据每一个值为“1”的像素的法线方向,计算出它的法线投影方向。当然,只有边缘部分上的点才是有意义的法线投影方向(因为中央部分上的像素的法线投影是一个点),边缘部分的范围则是由宽度值ω控制。
请参照图3,当边缘部分上的某一像素的法线投影的夹角值为α=0时,表示该像素的法线投影方向15a正好背离光源,因此该像素有最小的亮度值(即最暗,I0=Imin)。当边缘部分上的某一像素的法线投影的夹角值为α=π,表示该像素的法线投影方向15b正好面对光源,因此,该像素有最大的亮度值(最亮,Iπ=Imax),当边缘部分上的某一像素的法线投影的夹角值为α=θ,表示该像素的法线投影方向15c介于0与π之间,则该亮度值是介于最大值与最小值之间,可由公式(1)所示的线性插值法求得Iθ=Imin+θπ(Imax-Imin)----(1)]]>至于中央部分的点,因为它们没有法线投影方向,所以可将综们的亮度值设为最大亮度值与最小亮度值之和的一半。于是在经过前述的处理后,可以得到基本的立体隆起效果,但边缘会显得比较僵硬,不够圆滑,此时可利用点到边界的最短以对边缘部分上的点的亮度进行修正。最后再将计算所得的代表原图像前景的新值代替原图上的各前景点的亮度值,即可获得一具有立体效果图像。
有关本发明的详细内容及技术,兹配合


如下。
图1为在平面图中法线方向的示意图。
图2为平面图经处理转为立体图后,法线方向改变情形的示意图。
图3是本发明图像在经光源投射后,在图像上形成漫射的反射光的亮度计算实施例的示意图。
图4为本发明处理数字化二维图形的流程图。
图5为本发明用以计算每一前景图像的权值总和,所需的由图像中某一像素在以宽度为ω所形成的十字形区域的示意图。
图6为本发明的亮度修正曲线示意图。
图7为本发明修正原图像中属性为前景的图素的颜色及亮度的流程图。
图4所揭示的技术为根据图形转换的基本原理,将图5中含有“t”字形的数字化的图像O[x][y]10处理成具有立体效果的图像的处理流程图,其包括有步骤111设定图像O[x][y]10中投射于其目的图形上的一假想投射光源的投射方向,找出光源投射方向与法线投影方向所形成的夹角α;步骤112设定图像O[x][y]10中目的图形的边缘宽度值ω,亦即藉由边缘宽度值ω的设定,使得目的图形在经处理后,在图像中浮起一相应的高度;步骤113将图像O[x][y]10转换成二色图I[x][y],也就是将图像O[x][y]10中属于背景上的各像素的值为“0”,属于前景上的各像素的值置为“1”,同时并产生维度与二色图I[x][y]的维度相同的资料矩阵Buffer[x][y](例如,若二色图为一50×100的图像,则资料矩阵也将是一个[50][100]的矩阵),而且在资料矩阵Butter[x][y]中的每个数值均与二色图I[x][y]的每一个像素呈一对一的对应关系;步骤114计算在二色图I[x][y]中属于图像O[x][y]10的前景的各像素的权Weight[n],其方法是依公式(2),分别把图像O[x][y]10中每个属性为前景的像素(即在二色图I[x][y]中为“1”的数值),以边缘宽度ω为宽度值,所构成的十字形区域16内每个像素的密度(如图5所示),或是以每个属性为前景的像素为中心点,边缘宽度ω为宽度值,所构成的区域,以计算在区域内每个像素的密度Weight[n]=e-n22(n-ω)2,(0≤n≤ω-1)----(2)]]>在公式(2)中,e为自然对数,n为区域内每一个像素到中心点的距离,a取适当的值,用以确保在n>=ω时,使Weight[n]可以小到忽略不计。
步骤115根据公式(3),计算每个属性为前景的像素在所涵盖的范围内权的总和,并将之存储在先前建立的维度与二色图I[x][y]相同的资料矩阵Buffer[x][y]中,用以反映在像素以边缘宽度ω为宽度的范围内,每一属性为前景的像素的密度Buffer[x][y]=I[x][y]Weight
+Σi=1ω-1(I[x+i][y]+I[x][y+i]+I[x-i][y]+i[x][y-i]·Weight[i])----(3)]]>
步骤116根据图像中属于前景的各像素,依公式(4),计算每个像素在法线投影方向的X分量,并存储在一X分量矩阵Dx[x][y]中;Dx[x][y]=Σi=1ω-1(Buffer[x+i][y]-Buffer[x-i][y])·Weight[i]----(4)]]>步骤117根据图像中属于前景的各像素,依公式(5),计算每个像素在法线投影方向的Y分量,并存储到X-Y分量矩阵Dx[x][y]中;Dy[x][y]=Σi=1w-1(Buffer[x][y+i]-Buffer[x][y-i]·Weight[i]----(5)]]>(Dy为与Buffer等大小的数组)步骤118根据X分量矩阵、Y分量矩阵以及夹角α,利用公式(1)的线性插值法计算图像中属于前景的各像素的亮度值,并逐一记录在一维度与资料阵Buffer[x][y]相同的像素亮度矩阵Light[x][y]中,表一所示为产生图像亮度矩阵Light[x][y]的虚拟码。
表一产生像素亮度矩阵Dx[x][y的虚拟码
步骤119计算图像中属于前景的各像素至其边界的最短距离d,并根据最短距离d的值修正在像素亮度矩阵Light[x][y]中对应的亮度值;以及步骤120根据像素亮度矩阵Light[x][y]修正图像O[x][y]中每一像素的颜色与亮度,以产生一具有立体效果的新图。
在上述步骤119中,在对像素亮度矩阵Lignt[x][y]澡的每个数值进行修正前,会先根据原数值,建立一修正曲线17,如图6所示,图中,In为由法线投影方向与光线投影方向的夹角α所计算出的该像素的亮度,也就是目前正在处理中的像素原有的亮度;In’为非边缘区域的亮度;r为0至1之间的常数;ω为边缘区域的宽度;ω0为0至ω之间的常数;然后再依计算所得的最短距离d,在图6的修正曲线中对应出新的亮度值In”,最后再将新的亮度值In”取代像素亮度矩阵中的亮度值I,便完成此像素的亮度修正。
有关步骤120修正图像O[x][y]的方法是依表二的虚拟码来进行,请同时参阅图7,其转换的步骤如下步骤211取得属性为前景的像素的颜色值,其中颜色值的格式为RGB;步骤212将颜色值的格式转换为具有色调(H),饱和度(L),亮度(S)的HLS格式;步骤213读取像素亮度矩阵Light[x][y]中与图像O[x][y]中属性为前景的各像素相应位置的亮度值,并将之取代图像O[x][y]中各前景像素原来的亮度值;步骤214再把取代后的像素的HLS格式转换为RGB格式步骤215判断是否已全部将图像O[x][y]内前景像素的亮度值以像素亮度矩阵Light[x][y]内对应的新值取代完毕;若为是执行步骤217,若为否执行下一步骤;步骤216找出图像O[x][y]内下一个属性为前景的像素的位置,并取出其RGB格式的颜色值,跳至步骤212;步骤217产生一种在观感上具有立体效果的图像。
表二修正原图的颜色值的虚拟码
>综上所述,本发明虽藉由实施例来描述,为符合实际的需要,仍可变化其形式和细节部分,但这些变化亦不脱离本发明的精神。
本发明产生三维图形的方式,不必在三维空间中预先建立一标准的三维模型,仅藉由一平面图像,即可将图像中的目的图形转换成一种具立体视觉效果的图像。
权利要求
1.一种三维图像的产生方法,用以将电脑可处理的数字化图像中的目的图形转换成在视觉上具有立体效果的图像,其特征在于,该方法包含下列步骤a.设定一夹角值,该夹角值为投射到该目的图形上的一假想光源的光线与该目的图形所形成的角度;b.设定该目的图形的边缘宽度值;c.根据数字化的图像产生一具有一前景像素与一背景像素的二色图;d.根据该二色图产生一相应的资料矩阵,且该资料矩阵中的每个数值分别与该二色图中该前景像素和该背景像素呈一对一的对应关系;e.根据该资料矩阵与该夹角值,产生一X分量矩阵;f.根据该资料矩阵与该夹角值,产生一Y分量矩阵;g.根据该X分量矩阵、该Y分量矩阵以及该夹角值,产生一像素亮度阵列;以及h.根据像素亮度阵列将该目的图形转换在视上上具有立体效果的图像。
2.如权利要求1所述的三维图形的产生方法,其特征在于,该前景像素用以表示该图像的目的图形的部分。
3.如权利要求1所述的三维图形的产生方法,其特征在于,该背景像素用以表示该图像中非目的图形的部分。
4.如权利要求1所述的三维图形的产生方法,其特征在于,该资料矩阵包含有对应于该图像中每个像素的一加权总值。
5.如权利要求4所述的三维图形的产生方法,其特征在于,该加权总值用以表示在以该像素为中心,该边缘宽度值为半径,所构成的图形区域内该前景像素的密度。
6.如权利要求4所述的三维图形的产生方法,其特征在于,该加权总值用以表示在以该像素为中心,该边缘宽度值为宽度,所构成的十字形区域内该前景像素的密度。
7.如权利要求1所述的三维图形的产生方法,其特征在于,该步骤h还包含h1.取得该图像中任一该前景图像的颜色值;h2.转换该颜色值的格式;h3.根据该像素亮度矩阵,更新该前景像素的颜色值;h4.还原该颜色值的格式;h5.判断该像素内的该前景像素的颜色值是否已全部被取代;若为是执行步骤h7,若为否执行下一步骤;h6.取出该原图像内下一个像素,并取出该像素的颜色值,跳至步骤h2;以及h7.产生具有立体效果的图像。
8.如权利要求7所述的三维图形的产生方法,其特征在于,该前景像素的颜色值为RGB格式。
9.如权利要求7所述的三维图形的产生方法,其特征在于,该步骤h2是将RGB格式的颜色值转为HLS格式。
10.如权利要求9所述的三维图形的产生方法,其特征在于,该步骤h3是将该前景像素的亮度值以该像素亮度矩阵相应位置中的亮度值取代。
全文摘要
本发明提供一种三维图形的产生方法,揭示了一种无需藉由二维图形的信息,即可将电脑可处理的数字化的平面图形转换成在视觉上具立体效果的图形的技术。根本发明是在数字化的平面图片中预设假想光源投射到图片内的目的图形的角度(夹角值)以及形成立体效果所需的边缘宽度,然后根据夹角值及边缘宽度对图像中构成目的图形的各像素(前景像素)进行亮度处理,再重新赋予原图片内的目的图形新的颜色值,如此便可使得图像中原本是二维的图形呈现出立体效果。
文档编号G06T15/00GK1273405SQ9911368
公开日2000年11月15日 申请日期1999年5月6日 优先权日1999年5月6日
发明者詹浩博, 陈曦 申请人:英业达集团(南京)电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1