首页> 中国专利> 一种汉字字体矢量化方法

一种汉字字体矢量化方法

摘要

本发明公开了一种汉字字体矢量化方法,包括如下步骤:步骤1,输入汉字图形;步骤2,对于输入的汉字,选定预处理笔画区域;步骤3,在选定的预处理笔画区域中,采用区域选择递归方法获取笔画的所有边界点信息;步骤4,根据笔画边界点信息,判定每一笔画的笔画类型;步骤5,针对每一个笔画,从边界点中提取出运笔轨迹上的轨迹点和垂直于运笔方向上轨迹点的笔画宽度信息,完成字体矢量化。该汉字字体矢量化方法易于实施,能将汉字图形进行高效而准确地矢量化。

著录项

  • 公开/公告号CN107292936A

    专利类型发明专利

  • 公开/公告日2017-10-24

    原文格式PDF

  • 申请/专利权人 湖南大学;

    申请/专利号CN201710354736.2

  • 申请日2017-05-18

  • 分类号G06T9/00(20060101);

  • 代理机构43215 长沙思创联合知识产权代理事务所(普通合伙);

  • 代理人肖战胜

  • 地址 410082 湖南省长沙市岳麓区湖南大学

  • 入库时间 2023-06-19 03:35:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-11

    授权

    授权

  • 2017-11-24

    实质审查的生效 IPC(主分类):G06T9/00 申请日:20170518

    实质审查的生效

  • 2017-10-24

    公开

    公开

说明书

技术领域

本发明涉及一种汉字字体矢量化方法。

背景技术

传统的汉字继承手段主要是将汉字通过人工刻竹简、临摹、印刷等手段进行留传,耗费了大量的人力物力,保存下来的作品也需置于特定环境下才能维持其最原始的状态,具有很大的弊端。

针对汉字的数字化保存,现有的技术一般是进行整体的图像数字化扫描得到数字图像文件,这种方式存储量大,且不便于对汉字的笔画进行解构以及智能化的再现,因此,有必要设计一种新的汉字字体矢量化方法。

发明内容

本发明所要解决的技术问题是提供一种汉字字体矢量化方法,该汉字字体矢量化方法易于实施,能将汉字图形进行高效而准确地矢量化。

发明的技术解决方案如下:

一种汉字字体矢量化方法,其特征在于,包括如下步骤:

步骤1,输入汉字图形;

步骤2,对于输入的汉字,选定预处理笔画区域;汉字会有笔画交叉的情况(如图12-14中的“大”),需要人为对笔画的范围进行界定,使用背景色把待选定区域和其他区域分割开,再使用其他颜色(这里使用灰色,也可以使用其他颜色,如红色等)对选定区域进行自动填充(因为区域已经分割,可自动填充),对选定区域(灰色)进行预处理。如果笔画没有交叉(如图14中的“八”字),则直接使用灰色对该区域进行填充和预处理。同时,人工选定笔画。

步骤3,在选定的预处理笔画区域中,采用区域选择递归方法获取笔画的所有边界点信息;

步骤4,根据笔画边界点信息,判定每一笔画的笔画类型;

步骤5,针对每一个笔画,从边界点中提取出运笔轨迹上的轨迹点和垂直于运笔方向上的笔画宽度信息,完成字体矢量化。

各笔画之间用区分标志分区分。如2个笔画中间的“-1、1、1”用来区分不同笔画。

步骤3中,对边界点的定义如下:

边界点是指如果内部区域的某一个像素点的四个十字形方向相邻的像素点中,同时存在内部区域和外部区域的像素点,那么这个像素点称为边界点;内部区域是指位于字形内的区域,外部区域是指位于字形外的区域,或者说内部区域是非白色像素区域,外部区域为白色像素区域;

获取笔画的所有边界点的方法为:选定一个边界点后,然后利用边界点连续性定理,按照设定的方向(顺时针或逆时针)依次递归找出所有的边界点。

步骤3中,将汉字笔画分为“横”“竖”“撇”“点”“捺”五种,根据一个笔画的横轴长、纵轴长、笔画倾斜方向和笔画末端方向权重对笔画进行判断。

对于独立的笔画,针对该笔画进行直接识别;

对于存在转折的笔画,将交连的笔画分离割裂后,形成独立笔画,再识别该笔画。具体方式为:可以手动把笔画涂成一种颜色(如灰色),或者把涂色区域附近的交叉点的边界用背景色覆盖,如果是个转折笔画,则识别完一划后,再识别另一划,如图“马”。

以“竖直”和“水平”为最基本的处理方式进行识别,这两种方式决定了中间点的获取:

将“横”“撇”“捺”归为“水平”处理方式;而“竖”“点”进行“竖直”处理方式;

“竖直”和“水平”笔画的处理方式包括的处理步骤为:标记边界点→计算中间点→离散采样→寻找走势轨迹点的垂直边界点→计算走势轨迹信息→计算笔画宽度信息。

(1)“水平”处理流程为:对边界点横坐标x进行排序,每个x坐标对应一个上下轮廓的中点→筛选同一竖直方向上(x相同)的两个上下端点并计算二者的中点→离散采样,在512*512画布中,以15个像素点为一个基础单位进行采样(即“每15个像素进行一次采样”),这些取样出来的中点为轨迹点→寻找走势轨迹点的垂直边界点,即针对两个相邻轨迹点的连线,过轨迹点作垂线,垂线与笔画相交得到的两个边界点即为垂直边界点→计算走势轨迹信息,包括两边界点的横纵坐标以及两边界点之间的线段长度(线段长度即笔画宽度信息)。{这也是笔画“横”“撇”“捺”的笔画处理方式;}

8.根据权利要求7所述的汉字字体矢量化方法,其特征在于,“竖直”处理流程为:对边界点纵坐标y进行排序,每个y坐标对应一个左右轮廓的中点→筛选同一水平方向上(y相同)的两个左右端点→筛选y相同的两个边界点并计算二者的中点→离散采样,在512*512画布中,以15个像素点为一个基础单位进行采样(即“每15个像素进行一次采样”),这些取样出来的中点为轨迹点→寻找走势轨迹点的垂直边界点,即针对两个相邻轨迹点的连线,过轨迹点作垂线,垂线与笔画相交得到的两个边界点即为垂直边界点→计算走势轨迹信息,包括两边界点的横纵坐标以及两边界点之间的线段长度(线段长度即笔画宽度信息)。这也是笔画“竖”“撇”“点”的笔画处理方式。

矢量化完成后,一个汉字的信息由若干笔画组成,每个笔画的信息由轨迹点组成,每个轨迹点信息由x、y坐标和宽度组成,以线性数据结构进行组织。数据结构具体描述如下:

图3中,1,2,3代表笔画的序号(sequence),由于共用序号(sequence),这里只写一次

117 378 0代表第一个点的x,y坐标和宽度(起始点和终点的宽度均为0)。

基于矢量化数据再现字形的方法为:

依次将组成汉字的每一个笔画进行再现,从而完成整个字体的再现;

针对某一笔画进行再现的方法为:从该笔画的第2个轨迹点开始(第一个边界点宽度为0),计算前一个轨迹点到该轨迹点的垂直方向,根据宽度信息(width)和垂直方向信息还原边界点坐标(轨迹点位于边界点的中点且边界点连线为垂直方向),由此还原出每一对边界点。并将边界点对应的像素以及所有边界点连线围成的区域进行涂色,直到还原最后一对边界点,则完成该笔画的再现。

有益效果:

本发明的汉字字体矢量化方法,其突出的特点是设计合理,易于实施,具体来说,本发明具有以下突出的特征:

(1)针对具体汉字,将汉字的笔画分为交叉和不交叉的笔画进行处理,能增强识别的准确性。

(2)将笔画分为多个基本笔画进行识别,易于建模,易于实施。如将笔画分为“横”“竖”“撇”“点”“捺”五种进行识别,对于折划,可以拆分成横和竖进行识别。

(3)采用基于扫描轨迹点-宽度信息进行矢量化;计算量小,易于实施,且能完美扫描以及再现汉字的字形及书写过程。

总之,这种本发明的方法易于实施,构思巧妙,针对汉字的矢量化及再现效率高。

本发明提出的方法又称为可书法再现的字体准自动矢量化方法是一种现代信息技术与传统文化相结合的产物。该方法通过提取字体的笔画轨迹信息,并定义其矢量化数字信息格式,为中国传统书法文化提供了一种新的数字化保护保存方式;同时相比于图像方式,矢量化有助于书法再现,譬如,书法机器人,克服了传统技术只能借助印刷、临摹等手段进行使用和传承的弊端。本发明充分结合现代信息技术的优势,使得汉字文化在现代社会文化的冲击中进发出新的生命力,有利于传统文化的继承和发扬。

本发明通过提取笔画轨迹信息,实现了对字体信息的保护和保存,同时该发明与现代信息技术相结合,可运用机器手段对字体进行还原再现。该发明继承和发扬了中国优秀的汉字文化,有利于提升国家文化软实力,增强中国在世界范围内的影响力。

附图说明

图1为本发明字体矢量化方法的流程图;

图2为“一”字的矢量化结果示意图;

图3为为“大”字通过字体规划得出的笔画数据信息;

图4为像素边界点示意图;

图5为区域的边界点示意图;

图6为像素块示意图;

图7为具体笔画的上下左右极值点示意图;

图8为以撇划为例说明倾斜方向判定原理图;

图9为捺的末端特征示意图;

图10为点的末端特征示意图;

图11为矢量化过程中的笔画轨迹点和笔画宽度示意图;

图12为将“大”字的横划与其他笔画割裂开来的示意图;

图13为将“大”字的横划涂色的示意图;

图14为将“八”字的撇划涂色的示意图;

图15为将“马”字的折划中的横划部分与其他笔画割裂开来的示意图;

图16为将“马”字的折划中的横划部分识别完成后,再识别折划中的与其

他笔画割裂开的示意图

图17为将“马”字的折划识别完成的示意图;

图18为矢量化数据的数据结构示意图。

具体实施方式

以下将结合附图和具体实施例对本发明做进一步详细说明:

实施例1:如图1~18,一种汉字字体矢量化方法,包括以下步骤;

步骤1,在字图形化处理界面输入汉字;

步骤2,对于输入的汉字图形,选定预处理笔画区域。图4是汉字图形笔画边界点像素的定义,它对所有满足边界点定义的像素点进行了定义。图5是对汉字图形的边界点展示。

步骤3,在选定的处理区域中,采用区域选择递归方法获取笔画的所有边界点信息,区域递归算法步骤为:

(1)在内部区域内任意选择一个像素点如图6所示,按照上下左右任意方向搜寻到第一个边界点,执行步骤(2)。

(2)对该边界点进行标记,并把该边界点放入边界点数组中,同时更新边界点中最左(L-point)、最右(R-point)、最上(U-point)、最下(D-point)点的位置信息,执行步骤(3)。

(3)对像素点1进行边界点判定,如果是边界点同时没有标记过,执行步骤(2),否则执行步骤(4)。

(4)对像素点2进行边界点判定,如果是边界点同时没有标记过,执行步骤(2),否则执行步骤(5)。

(5)对像素点3进行边界点判定,如果是边界点同时没有标记过,执行步骤(2),否则执行步骤(6)。

(6)对像素点4进行边界点判定,如果是边界点同时没有标记过,执行步骤(2),否则执行步骤(7)。

(7)对像素点5进行边界点判定,如果是边界点同时没有标记过,执行步骤(2),否则执行步骤(8)。

(8)对像素点6进行边界点判定,如果是边界点同时没有标记过,执行步骤(2),否则执行步骤(9)。

(9)对像素点7进行边界点判定,如果是边界点同时没有标记过,执行步骤(2),否则执行步骤(10)。

(10)对像素点8进行边界点判定,如果是边界点同时没有标记过,执行步骤(2),否则执行步骤(11)

(11)结束退出。

步骤4,对选定笔画的所有边界点进行分析和处理,根据笔画的纵轴长length和横轴长width的比值来区分横竖和撇捺点提,比值在0.6到1.5之间则判定为撇捺点提,比值在0.6到1.5之外则判定为横或者竖,其中纵轴长length和横轴长width的获取如公式1和2所示,公式中所涉及的参数如图7所示:

(1)L-point(图7中水平方向上横坐标最小的点L),过该点作垂直于该坐标的垂线,这条线可以确定覆盖该笔画的最小矩形的左侧边线;

(2)R-point(图7中水平方向上横坐标最大的点R),过该点作垂直于该坐标的垂线,这条线可以确定覆盖该笔画的最小矩形的右侧边线;

(3)U-point(图7中竖直方向上纵坐标最大的点U),过该点作垂直于该坐标的垂线,这条线可以确定覆盖该笔画的最小矩形的上方边线;

(4)D-point(竖直方向上纵坐标最小的点D),过该点作垂直于该坐标的垂线,这条线可以确定覆盖该笔画的最小矩形的下方边线;

横轴长定义如公式(1)

Width=R.x-L.x (1)

纵轴长定义如公式(2)

Length=D.y-U.y (2)

公式中,“.x”表示对应点的x坐标;“.y”表示对应点的y坐标。

通过分析斜笔画的倾斜方向,可以把斜笔画分为2类:向右下倾斜方式和左下倾斜方式。其中,撇被分类为左下倾斜笔画,点和捺被分类为右下倾斜方式。

该处用到的算法判定原理如图8。

如图8矩形区域,该区域是能够覆盖笔画的最小矩形区域,设ABCD分别是矩形区域的左上、右上,右下,左下顶点,E是矩形区域底边中点,细线段AE和BE指示方向,从A和B射出射线AE和BE(射线用粗线段表示),根据射线AE和BE接触到内部区域的先后顺序,可以判断出笔画的倾斜方向。

(1)若射线AE先接触到内部区域,判定为右下倾斜笔画

(2)若射线BE先接触到内部区域,判定为左下倾斜笔画

如图8所示,右方先接触到内部区域,因此被判定为左下倾斜笔画

被判定为右下倾斜的笔画包含“点”和“捺”。要继续分离这两个笔画,可以使用统计的方法进行分类。在观察“点”和“捺”两种笔画的特征时,发现笔画“捺”和笔画“点”在末端(最右和最下)的边界点分布有明显的不同。

如图10所示,笔画“点”的右端边界点分布比下端边界点分布更加密集,而(如图9所示)笔画“捺”正好相反。通过统计右下笔画右端边界点和下端边界点的数量,可以区分笔画“点”和笔画“捺”。

为了消除一些个别特殊边界点的影响,统计的是矩形区域最右边三列边界点的数量和最下方三行的边界点数量。

算法:

(1)对边界点数组按照x坐标从小到大排列,统计最后三列的边界点数量

(2)对边界点数组按照y坐标从小到大排列,统计最后三行的边界点数量

(3)比较最后三行的边界点数量和最后三列的边界点数量,若最后三行数量大于最后三列边界点数量,判定为笔画“捺”;否则,判定为笔画“点”。(在512*512画布中,对最后3行和3列进行统计已满足判断要求)

由此将笔画信息分为“横”“竖”“撇”“点”“捺”五种类型。

六种笔画“横”“竖”“撇”“点”“捺”“提”再分为“竖直”“和“水平”两种处理方式。

(1)“水平”处理流程为:对边界点横坐标x进行排序,每个x坐标对应一个上下轮廓的中点→筛选同一竖直方向上(x相同)的两个上下端点并计算二者的中点→离散采样,在512*512画布中,以15个像素点为一个基础单位进行采样,这些取样出来的中点为轨迹点→寻找走势轨迹点的垂直边界点,即过轨迹点作该点的垂线,与笔画相交可得两个边界点→计算走势轨迹信息,包括两边界点的横纵坐标以及两边界点之间的线段长度→计算笔画宽度信息,垂线与笔画相交的两端点所构成的线段的长度即为笔画的即时宽度,这也是笔画“横”“撇”“捺”的笔画处理方式;

(2)“竖直”处理流程为:对边界点纵坐标y进行排序,每个y坐标对应一个左右轮廓的中点→筛选同一水平方向上(y相同)的两个左右端点→筛选y相同的两个极点并计算二者的中点→离散采样,在512*512画布中,以15个像素点为一个基础单位进行采样,这些取样出来的中点为轨迹点→寻找走势轨迹点的垂直边界点,即过轨迹点作该点的垂线,与笔画相交可得两个边界点→计算走势轨迹信息,找走势轨迹点的垂直边界点,即过轨迹点作该点的垂线,与笔画相交可得两个边界点→计算笔画宽度信息,垂线与笔画相交的两端点所构成的线段即为笔画的即时宽度,这也是笔画“撇”“点”的笔画处理方式;

步骤5,从边界点中提取出运笔方向轨迹上的轨迹点和垂直于运笔方向上的笔画宽度信息,从边界点中提取出扫描轨迹上的中心点是指提取出某个笔画的n个中点(A0A1,A1A2,A2A3...An-2An-1)的取样信息(包含开始和结束点),并将这些中点连接成n-1个线段(A0A1,A1A2,A2A3...An-2An-1),从x=1起,到结束,过Ax作垂直于Ax-1Ax的线段BxCx,与笔画边界相交于Bx和Cx两点。BxCx中点Dx为实际提取的目标轨迹点,令D0=A0,Dn-1=An-1,依次连接轨迹点:(D0D1,D1D2,D2D3,D3D4...Dn-3Dn-2,Dn-2Dn-1)为笔画运笔方向上的轨迹点,提取的笔画轨迹宽度信息即为BxCx,准确模拟毛笔的运笔方向。笔画轨迹连线如图10所示,其中黑色圆点为扫描轨迹上中点(A0A1,A1A2,A2A3...An-2An-1),白色实线为对扫描轨迹上的中点(A0A1,A1A2,A2A3...An-2An-1)作垂线与笔画相交得到n-1条线段,这些线段的中点即为运笔轨迹点Dx,其长度即为笔画的即时宽度BxCx

如图2中所示,对笔画“一”进行字体规划后,可以利用上述专利方法得到该笔画的边界点坐标Bx、Cx以及线段的长度Dx,这三种数据可以以CSV数据格式存储起来,利用得到的数据,软笔以直线形式从当前点D0写到下一点D1…Dn.,直至数据读取完毕。针对“大”字得出来的数据如图3所示,左到右对应的数据参数分别为相应笔画中心轨迹点的横纵坐标以及该点的笔画宽度信息,中间的(-1、-1、-1)的作用是用来区分不同笔画。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号