掌桥专利:专业的专利平台
掌桥专利
首页

一种文字外形个性化处理方法及系统

文献发布时间:2023-06-19 10:54:12


一种文字外形个性化处理方法及系统

技术领域

本申请涉及字形处理技术领域,具体而言,涉及一种文字外形个性化处理方法及系统。

背景技术

随着我国人民生活水平的不断提高,人们对个性字库的需求越来越大。然而,由于汉字的多样性,例如,国标GB18030-2000包含27533个汉字,即使日常使用的国标GB 2312也包含了6763个汉字,而且汉字的结构往往错综复杂,因此,使用传统方法制作一套中文字库是一项相当费时费力的任务。如何利用计算机技术实现快速自动地合成大规模中文字库成为了一个亟待解决的问题。

申请号201910649353.7的专利公布了一种汉字骨架自动合成方法及大规模中文字库的自动生成方法,将中文字符视为点的序列(即书写轨迹),通过构建具有单调注意力机制的循环神经网络模型FontRNN来进行汉字骨架的自动合成,从少量训练样本中学习合成其余具有相同风格的汉字字符,实现汉字骨架的自动合成。本发明可克服现有汉字合成技术存在的合成汉字模糊、笔画丢失、结构错误等不足,且本发明模型可以从仅仅几百个训练样本中学习如何合成其余数千个具有相同风格的汉字字符。

但是,上述专利没有对文字骨架进行各种调整,以得到各种风格的字体。其次,其只是利用一个简单的卷积神经网络模型作为外轮廓恢复模型,恢复目标字骨架的外轮廓形状,这样形成的文字风格较为单一。上述问题目前尚未提出有效的解决方案。

发明内容

本申请的主要目的在于提供一种文字外形个性化处理方法及系统,以解决现有技术中自动合成大规模中文字库效果不佳、风格较少、形式单一的问题。

为了实现上述目的,本申请提供了一种文字外形个性化处理方法,包括:

对文字进行预处理,得到文字骨架并入库;

对所述文字骨架进行渲染,形成目标渲染字形;

导出目标渲染字形,封装成字体安装包。

进一步的,所述对文字进行预处理至少包括获取文字骨架、断开文字骨架中的折线、检查笔画朝向、排除曲线笔画。

进一步的,所述文字骨架由纯线段组成,每条线段两端通过坐标点定位,所述每条线段两端的坐标点形成一个坐标数据组,文字骨架所有线段对应的坐标数据组形成坐标数据包。

进一步的,所述断开文字骨架中的折线为断开两线段端部相连的部分,使得折线形成两条分开的线段。

进一步的,所述排除曲线笔画,具体为:检查矢量文件中是否有path数据,如果有path数据将其转换为line数据,其中path数据包括至少四个不同坐标点,line数据包括线段两端的两个坐标点。

进一步的,所述对所述文字骨架进行渲染,得到个性化外形文字之前,还包括:对所述文字骨架进行调整,具体为在阈值范围内调整文字骨架中各个线段两端的坐标位置。

进一步的,所述对文字骨架进行渲染,具体为:

基于所述文字骨架中各个线段两端的坐标,以及目标渲染效果,得到各个线段两端的坐标的外部关键点位置坐标,所述外部关键点为所述线段两端的坐标外围对应的拐点;

基于所述文字骨架对应的全部所述外部关键点,形成目标渲染字形的各个笔画外部轮廓;

将所述目标渲染字形的各个笔画外部轮廓闭合连接,同时将闭合连接后的轮廓内部填充像素,形成目标渲染字形。

进一步的,所述目标渲染效果包括固定模式、随机模式以及笔画关联模式,其中:

固定模式,按照所述对文字骨架进行渲染的方式,每次渲染出来的目标渲染字形都是一样;

随机模式,按照所述对文字骨架进行渲染的方式,每次渲染出来的目标渲染字形局部都不一样;

笔画关联模式,按照所述对文字骨架进行渲染的方式,每次渲染出来的目标渲染字形根据笔画密集度和笔画之间夹角不一样。

进一步的,在对文字骨架进行渲染后,还包括对所述目标渲染字形进行滤镜处理,具体为:对目标渲染字形中的各个笔画的像素进行灰度值判断,如果像素的灰度大于判断阈值,则在所述像素的坐标位置上绘制正方形;或者提取每个像素的灰度,根据每个像素灰度来确定圆点的直径,营造模糊的效果。

本发明第二方面提供一种文字外形个性化处理系统,包括:

文字骨架提取模块,用于对文字进行预处理,得到文字骨架并入库;

文字骨架渲染模块,用于架进行渲染,形成目标渲染字形;

目标字形导出模块,用于导出目标渲染字形,封装成字体安装包。

本申请的有益效果:

本申请利用计算机技术实现快速自动地合成大规模中文字库,在形成个性化字库过程中,进行获取文字骨架、断开文字骨架中的折线、检查笔画朝向、排除曲线笔画的预处理,充分考虑各类汉字的书写特征,因此最终渲染处理的字体字形效果更好。其次,在文字骨架渲染前对其进行各种调整,可得到各种风格的字体。最后,渲染后的字体字形包括固定模式、随机模式以及笔画关联模式,且渲染后还进行滤镜处理以得到更为丰富的风格形式。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例提供的文字外形个性化处理方法流程图;

图2是根据本申请实施例提供的文字外形个性化处理系统原理框图;

图3是根据本申请实施例提供的文字外形个性化处理方法文字组成示意图;

图4是根据本申请实施例提供的文字外形个性化处理方法断开折线的预处理示意图;

图5是根据本申请实施例提供的文字外形个性化处理方法文字骨架调整示意图;

图6是根据本申请实施例提供的文字外形个性化处理方法文字骨架渲染示意图;

图7是根据本申请实施例提供的文字外形个性化处理方法文字骨架渲染的固定模式示意图;

图8是根据本申请实施例提供的文字外形个性化处理方法文字骨架渲染的随机模式示意图;

图9是根据本申请实施例提供的文字外形个性化处理方法文字骨架渲染的笔画关联模式示意图;

图10是根据本申请实施例提供的文字外形个性化处理方法一种滤镜处理形式示意图;

图11是根据本申请实施例提供的文字外形个性化处理方法另一种滤镜处理形式示意图;

图12是根据本申请实施例提供的文字外形个性化处理方法处理后导出的字库示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。

并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。

另外,术语“多个”的含义应为两个以及两个以上。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

如图1所示,本申请提供了一种文字外形个性化处理方法,包括以下步骤:

S1、对文字进行预处理,得到文字骨架并入库;

S2、对所述文字骨架进行渲染,形成目标渲染字形;

S3、导出目标渲染字形,封装成字体安装包。

其中,步骤S1中对文字进行预处理至少包括获取文字骨架、断开文字骨架中的折线、检查笔画朝向、排除曲线笔画。

如图3所示,文字骨架由纯线段组成,每条线段两端通过坐标点定位,每条线段两端的坐标点形成一个坐标数据组,文字骨架所有线段对应的坐标数据组形成坐标数据包。本实施例采用骨架提取算法提取其骨架。图中以“严”字为示例,“严”字最上面的一横的骨架两端分别用坐标(X1,Y1)、(X2,Y2) 表示,(X1,Y1)、(X2,Y2)形成一个坐标数据组,其余笔画依次类推。因此一个汉字骨架就可以通过多组坐标数据组抽象在计算机中处理。同时,由于书写时需要按照一定的笔顺顺序,每一个坐标数据组(Xa,Ya)、(Xb,Yb) 同时还包括其向量值关系,即坐标起始点和终点。

其次,由于大多数汉字并不都是按照上述原则通过直线拼起来的,而是包含折线、曲线,对于折线笔画,如果需要处理成上述坐标数据包,就要将折线连接处去掉,如图4所示,以“马”字为例,图中圆圈处即需要去掉的折线。通过计算机程序处理,就是将两条笔画线段存在相同的坐标点的删除,对于删除的坐标点再通过一定的坐标微调实现。比如一个折线包括的坐标数据组是 (X5,Y5)、(X6,Y6)和(X6,Y6)(X7,Y7),可见(X6,Y6)处是这个要去掉的拐点,去掉折线的拐点,就需要将(X6,Y6)微调成两组不同坐标,比如,对于图4中第一个拐点A,需要将Y6的数值减少一定值,X2不变,作为横线的新坐标,即可实现打断拐点。

同时,所述检查笔画朝向除了横撇的朝向本身为左,其余均把朝左的横笔改成朝右。如图3所示,严”字最上面的一横的骨架两端分别用坐标(X1, Y1)、(X2,Y2),其写法是从坐标(X1,Y1)到(X2,Y2),从左到右,符合书写规律。同时严”字最底下的横撇从坐标(X3,Y3)到(X4,Y4),因为是横撇,所以从右到左,也符合书写规律。但是,部分直线的朝向会违背书写规律(主要体现在横笔朝左,需要改成朝右),这是只需要改变线段坐标的向量方向即可。

最后,需确保所有的线都为直线(底层数据类型为line)。按照书写规律,有些字不是折线也不是直线,而是曲线,比如“儿”字左边的部分,按照上述打断折线拐点的方式也不能精确体现直线坐标定位。这就需要通过代码检查出曲线后,再在曲线的起点和终点绘制出一条直线即可。本实施例中,检查曲线方法为:检查矢量文件中是否有path数据,如果有path数据将其转换为line 数据,其中,line数据包括线段两端的两个坐标点,比如上述严”字最上面的一横的骨架两端分别用坐标(X1,Y1)、(X2,Y2)。path数据包括至少四个不同坐标点,即在(X1,Y1)、(X2,Y2)定位的直线任一侧出现了至少两个明显的拐点坐标,因为一个拐点坐标定位的是折线。

按照上述预处理过程,就可以将输入系统文字处理成文字骨架,且文字骨架在计算机上体现为包含向量关系的坐标数据包。下一步将对文字骨架进行渲染,在此之前,还可以对文字骨架进行调整,具体为在阈值范围内调整文字骨架中各个线段两端的坐标位置,如图5所示,为“事”的不同形式的骨架,这样就可以在后期渲染后形成不同风格的字,衍生数的上限为【笔画特征数】* 【骨架数】。

其次,步骤S2中对所述文字骨架进行渲染,形成目标渲染字形,具体为:

基于所述文字骨架中各个线段两端的坐标,以及目标渲染效果,得到各个线段两端的坐标的外部关键点位置坐标,外部关键点为所述线段两端的坐标外围对应的拐点;

基于文字骨架对应的全部外部关键点,形成目标渲染字形的各个笔画外部轮廓;

将目标渲染字形的各个笔画外部轮廓闭合连接,同时将闭合连接后的轮廓内部填充像素,形成目标渲染字形。

如图6所示,汉字的“一”字就是一个最简单的字形,其有4个数据:(x1, y1)、(x2,y2),为直线两个端点的坐标,如果目标渲染效果为宋体。则“一”字两端的坐标的外部关键点位置有五个坐标,左边两个,右边三个。左边的两个点(左侧三个点两边的点)和坐标(x1,y1)的点相对位置是固定不变的,其中坐标(x1,y1)的点即图6左侧三个点中间的点,右边三个亦然,右边三角形中间的点即(x2,y2)点。所以求出这五个点后,再依次连接这五个点,得到围合的图形,这个笔画特征就套上了。所以首先是围绕起点(x1,y1)和终点(x2,y2)做文章,求出其他点的相对位置,围合得到特定的笔画外部轮廓,最后将闭合连接后的轮廓内部填充像素,形成目标渲染字形。

其中,上述目标渲染效果包括固定模式、随机模式以及笔画关联模式:

固定模式,按照所述对文字骨架进行渲染的方式,每次渲染出来的目标渲染字形都是一样,如图7所示,所给的“五”字笔画线条为单一的横线,所给的“特”字笔画线条为单一的“回形针”结构。

随机模式,按照所述对文字骨架进行渲染的方式,每次渲染出来的目标渲染字形局部都不一样;如图8所示,所给的“事”字笔画线条为圆形、菱形、×号的组合,且每一处笔画圆形、菱形、×号的分布结构均不同。所给的“丽”字各个笔画线条外部渲染也不同,有的笔画旁有树叶结构,有的在笔画内部有树叶结构,形式不一。

笔画关联模式,按照所述对文字骨架进行渲染的方式,每次渲染出来的目标渲染字形根据笔画密集度和笔画之间夹角不一样。如图9所示,所给的“橹”字笔画线条较多,且大多数笔画之间平行(夹角为0°),因此渲染的笔画线条较细。所给的“任”字笔画线条较少,因此渲染的笔画线条较粗。

对所述对目标渲染字形进行滤镜处理,具体为:对目标渲染字形中的各个笔画的像素进行灰度值判断,如果像素的灰度大于判断阈值,则在所述像素的坐标位置上绘制正方形;或者提取每个像素的灰度,根据每个像素灰度来确定圆点的直径,营造模糊的效果。如图10所示,转变成位图后,在陈序里对每个像素进行判断,如果该像素的灰度大于某个值,就在该像素的位置(x,y) 上绘制一个正方形。从矢量图得到位图后,位图本身也可以加图片滤镜(得到的产物仍为位图),比如在位图上使用模糊滤镜,有如图11的效果,提取每个像素的灰度,根据灰度来确定圆点的直径,用这种矢量的网点形式,也能营造模糊的效果。

最后是导出文件的步骤。导出的文件有三种类型:1.一页一字,导出的文件数为字符数。这种形式比较少用,除非能确保不用人工检测就能直接入库; 2.一页1000字,导出的文件数为8(简体中文)。这种形式比较常用,前提是文件不会太大。部分导出文件需要在其他软件里进行二次处理,也不会太麻烦; 3.一页100字,导出的文件数为73(简体中文)。这种形式使用与文件比较大的字体。使用这种形式,最好导出的文件不需要进行二次处理),能直接入库。如图12所示,为100款衍生的成果。

如图2所示,本申请提供了一种文字外形个性化处理系统,包括:

文字骨架提取模块,用于对文字进行预处理,得到文字骨架并入库;

文字骨架渲染模块,用于架进行渲染,形成目标渲染字形;

目标字形导出模块,用于导出目标渲染字形,封装成字体安装包。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种文字外形个性化处理方法及系统
  • 一种用于形成文字索引的多媒体系统及处理方法
技术分类

06120112721976