一种基于改进膨胀算法的字形合成方法与流程

文档序号:12733594阅读:307来源:国知局
一种基于改进膨胀算法的字形合成方法与流程

本发明涉及文字图形处理领域,尤其是一种改进膨胀算法的字形合成方法。



背景技术:

字形合成是图形变形技术的一种,属于图形处理领域中的一个新的分支。对图形学来说,它可以实现通过现有字形生成新的字形,是一项重要的研究课题。字形合成指的是基于现有的两个字形,通过某种算法,产生一系列的中间字形,从而实现两个字形间的平滑过渡。现有的字体合成方法多是基于字形图像,即以图像为基础进行字体合成。而基于图形的字体合成方法处理对象多是相同拓扑结构的字形。

现有技术公开了多种字形合成方法,处理对象多是相同拓扑结构的字形。但是对于不同构的字形进行合成时,合成效果不佳,容易出现病变结果,不能较好地解决字形不同构的问题。而几乎所有汉字字形都是复杂的凹多边形,字形千变万化,且不同字体间字形结构不同。



技术实现要素:

本发明目的在于提供一种合成效果好、合成质量高的基于改进膨胀算法的字形合成方法,用以解决二维字形间不同构的问题,为后期的字体合成、图形动画、计算机辅助设计等做基础。

为实现上述目的,采用了以下技术方案:本发明所述方法的具体步骤如下:

步骤1,获取字形文件,建立字形部件间的映射关系;

步骤2,在各字形部件内分别进行凸剖分;

步骤3,对剖分后的凸多边形建立映射关系;

步骤4,利用吻合边的特点,将两多边形分别缩小一定比例,以保证膨胀结果字形与原字形大小一致,对存在映射关系的凸多边形进行膨胀;基于两字形间凸多边形的映射关系,选择一个凸多边形其中的某条边的起始点作为膨胀过程中的参照点,并基于该参照点将该凸多边形沿另一个多边形的每条边进行平移,然后根据每条边端点两多边形的边必然吻合的特性,计算平移轨迹,以得到多边形膨胀轨迹,从而实现对凸多边形进行膨胀,得到连续的膨胀结果轮廓;

步骤5,对膨胀结果进行曲线拟合,使结果轮廓更平滑。

进一步的,步骤1中,根据字形的连通区域划分部件,并利用字形部件的相似性计算匹配度,确定字形部件间的映射关系。

进一步的,步骤2中,对各部件进行最大凸剖分,即尽可能剖分成最大凸多边形,利于后期的膨胀合成;所述凸多边形均为矢量多边形。

进一步的,步骤3中,计算各凸多边形的重心,并利用归一化后的重心坐标矢量距离计算相似度,从而确定凸多边形间的映射关系。

进一步的,步骤4中,基于吻合边的膨胀过程如下,将对应两凸多边形分别称作多边形PA和PB,其中PA为待膨胀图形,PB为结构元素;

步骤4.1,选择多边形PB的一个顶点作为膨胀过程中的参照点,其中选择各凸多边形的参照点时要保持其一致性,以保证膨胀的方向一致,有效提高膨胀效果;

步骤4.2,保持参照点与多边形PA第一条边的两端点重合,以多边形PA的第一条边的左端点为运动起点,沿多边形PA的第一条边平移多边形PB,并根据边吻合特点,计算这次平移中各对吻合边形成的四边形,即得到PB在PA第一条边的膨胀轨迹。

步骤4.3,重复步骤4.2直至对多边形PA的每条边均进行膨胀为止,得到PB对PA的膨胀轨迹;

步骤4.4,取膨胀轨迹与多边形PA的并集作为膨胀结果。

进一步的,步骤5中,对膨胀结果进行曲线拟合的主要目标是轮廓的相邻边,先尝试拟合成直线,若不可以则尝试拟合成曲线,以生成新的轮廓边,拟合后所得图形即为字形合成结果。

工作过程大致如下:

首先通过对两字形各部件分别进行凸剖分,建立部件间的映射关系,并在对应的部件内建立凸多边形的映射关系,然后对存在映射关系的凸多边形利用吻合边的特点进行膨胀,,最后对膨胀结果进行曲线拟合,实现汉字字形的合成。

与现有技术相比,本发明方法具有如下优点:能够得到较好的字形合成效果,保证字形合成质量;并能够用以解决二维字形间不同构的问题,为后期的字体合成、图形动画、计算机辅助设计等做基础,具有良好的适应性。

附图说明

图1为本发明的程序流程图。

图2为本发明的多边形膨胀流程图。

具体实施方式

下面结合附图对本发明做进一步说明:

如图1所示,本发明所述方法的具体步骤如下:

步骤1,对两字形建立部件间的映射关系。

字形连通区域即部件,以此划分字形的部件,并根据各部件的重心、面积、空间位置等特点,计算两字形间各部件的匹配度,匹配度最高的一对部件即存在映射关系。

步骤2,对各部件进行最大凸剖分。

在字形各部件内基于Delaunay三角剖分方法进行剖分,并对三角剖分结果进行合并,以使得部件剖分后的每一个多边形达到最大剖分。

步骤3,建立凸多边形映射关系。

基于归一化后的凸多边形的中心坐标,计算欧氏距离,其中距离最近的凸多边形即互为映射关系。

步骤4,对凸多边形进行膨胀。首先将两多边形分别缩小一定比例,以保证膨胀结果字形与原字形大小一致。然后根据两字形间多边形的映射关系,基于一个多边形的顶点,将该多边形沿另一个多边形的每条边进行平移,并利用平移过程中产生的吻合边得到膨胀轨迹,从而实现对凸多边形进行膨胀。

基于吻合边的膨胀过程如下,

假设两字形间存在映射关系的凸多边形是PA和PB,多边形PA的边表示为EAi(i=0,1,2,…,M),顶点表示为VAi(i=0,1,2,…,M),其中EAM+1和VAM+1分别表示EA0和VA0。多边形PB的边表示为EBj(j=0,1,2,…,N),顶点表示为VBj(j=0,1,2,…,N),其中EBN+1和VBN+1分别表示EB0和VB0。基于吻合边的膨胀流程如附图2所示,具体步骤如下:

(1)判断多边形PB的各个顶点VBj(j=0,1,2,…,N)的横坐标和纵坐标,选择最上(或最下,最左,最右,保持一致即可)一个顶点VBk作为参考点。令m=0,转入(2)。

(2)若m=M+1,则两多边形膨胀结束,取Tm(m=0,1,2,…,M)的并集与多边形PA的并集即为两多边形膨胀结果。否则转入(3)。

(3)以多边形PA的边EAm的左端点VAm为运动起点,右端点VAm+1为运动终点,沿边EAm平移多边形PB,其中在起点和终点处,分别保持参考点VBk与多边形PA的边EAm的两端点VAm和VAm+1重合,从而在VAm和VAm+1处分别形成新的多边形PB_VAm和PB_VAm+1,令n=0,转入(4)。

(4)若n=N+1,则多边形PB在边EAm上的膨胀结束,所形成平行四边形的并集Tm即为其膨胀结果,转入(7),否则转入(5)。

(5)若多边形PA的边EAm与多边形PB的边EBn存在平行关系,则令n=n+1,返回(4),否则转入(6)。

(6)根据多边形PB_VAm和PB_VAm+1中对应EBn的两条边互相吻合,即方向和长度完全相同的特点,分别连接两多边形中该对边的起始点和终止点,形成一个平行四边形并保存。令n=n+1,返回(4)。

(7)令m=m+1,返回(2)。

步骤5对膨胀结果进行曲线拟合,使结果轮廓更平滑。曲线拟合主要是对轮廓相邻边进行处理,首先判断相邻边是否能拟合成直线,若是则直接保存,拟合后首尾点保持不变。否则使用最小二乘法进行曲线拟合,生成新的轮廓边,处理后所得图形即为字形合成结果。

以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1