汉字字形自动生成方法及其装置的制作方法

文档序号:6615639阅读:563来源:国知局
专利名称:汉字字形自动生成方法及其装置的制作方法
技术领域
本发明属信息技术领域,是一种汉字字形自动生成方法及其装置。
随着计算机应用的迅猛发展,各行各业对计算机汉字字形的要求也越来越广,但由于汉字字符集庞大,汉字结构复杂,字体繁多,汉字字形设计一直是计算机应用领域的一大难题。目前,汉字字形设计技术主要有点阵法、轮廓线法和部件组字法等。点阵法主要是依靠手工设计,轮廓线法和部件组字法可不同程度借助计算机自动交互完成。现有的借助计算机生成所需汉字字形的方法主要有如下几种(1)量化传统书法规则(樊建平,智能汉字字形设计技术及一个实验性系统IC-CDS,中文信息学报,4(3),1-11,1990);(2)以现有的特定字形为基础,衍生出新的字形(严伟荣,蔡士杰,基于笔画特征的宋体字衍生方法,中文信息学报,8(4),16-22,1994);(3)借助形状合成操作对字形的风格进行合并(潘志康,马小虎,石教英,动态汉字库自动生成算法,自动化学报,22(5),561-567,1996);(4)借助数学形态变换(刘文予,万菲,朱光喜,基于形态学的汉字字形自动生成方法,计算机学报,22(3),235-240,1999)。
上述方法的不足之处主要是生成的汉字字形不够丰富,并且占用的字库规模较大,难以适应各行各业对计算机汉字字形越来越广泛的需求。
本发明的目的在于提出一种生成的汉字字形丰富、占用的字库规模较小的汉字字形自动生成方法及其装置,以适应各行各业对计算机汉字字形越来越广泛的需求。
本发明提出的汉字字形自动生成方法,首先将汉字表示成由汉字部件作为操作数、部件间相互位置关系作为运算符号的数学表达式(这些汉字部件表达式库固化于一个专用的汉字字形自动生成器控制卡中);然后,采用汉字笔画自动抽取方法形成对应于不同字体的汉字部件框架,并根据字体要求,使用相应的笔画生成函数,再按相应的规则,构造出所需的汉字字形。
下面将进一步具体描述本发明方法。
汉字由部件组成,部件由笔画组成,这是一个显而易见的事实。不少研究者就汉字的表达提出了很多有益的思想,如汉字的有向图表示,汉字的层次模型等。但这些表达方法的数据结构比较复杂,不能很好地用于汉字信息处理。本发明提出一种全新的汉字表达方法,即将汉字表示成由汉字部件作为操作数、部件间结构关系为运算符号的数学表达式。
我们选择组成汉字的基本部件共512(29)个,这些部件与现有汉字处理方法中的部件结构基本相同(具体可见《中文信息学报》,8(4),16-22,1994)),这些部件当然不是绝对固定,的,根据实际处理情况,可作某些变动。这512个汉字部件中,部分部件如图1所示。
我们将部件分为如下几类(1)独体字部件;(2)左右型部件;(3)上下型部件;(4)包围型部件。
如图1所示,第一、二行的部件均为独体字部件,第三行前面第一、二、三个为左右型部件,第五行面前第二、三个为上下型部件,第四行前面第一、二、三个为包围型部件等。
部件间可通过位置的相互组合生成汉字,这种相互位置关系我们用运算符号表示。汉字部件运算符号有(1)lr,A lr B表示部件A在部件B的左面;(2)ud,A ud B表示部件A在部件B的上面;(3)ld,A ld B表示部件A在部件B的左下方;(4)lu,A lu B表示部件A在部件B的左上方;(5)ru,A ru B表示部件A在部件B的右上方;(6)le,A le B表示部件A左包含部件B;(7)re,A re B表示部件A右包含部件B;(8)ue,A ue B表示部件A上包含部件B;(9)de,A de B表示部件A下包含部件B;(10)we,A we B表示部件A全包含部件B;以上各运算符都具有相同的优先级,括号优先运算。
然后,对所选的512个部件依次编号。以图1中部件为例,从左到右,从上到下依次进行编号,编号从0开始。如,部件“木”、“小”、“土”、“口”的编号依次为0、1、2、3,“君“的编号为48,“门”的编号为59。则有林=000 lr 000森=000 ud(000 lr 000)沐=024 lr 000问=059 ue 003君=048 lu 003戴=041 ru(013 ud 086 ud 085)因=003 we 007木=010因所选部件为512个,故部件编码要9位二进制位,如第512个部件的编码为111111111(EP511),运算符号(包括括号)编码要4位。通过对国标规定的6763个一级、二级汉字表达式进行统计,平均每个汉字需要2.7个字节表示,6763个一级、二级汉字需要的空间不超过23KB。故我们可将该汉字表达式库固化于专用控制卡上的28C256中。
上面介绍了本发明汉字表达式库的建立,下面进一步介绍字形生成方法。
本发明采用汉字笔画自动抽取方法(见本发明申请人的另一专利申请“汉字笔画自动抽取方法及其装置”,中国专利申请号为00115655,申请日为2000年5月11日),抽取上述512个汉字部件的笔画的端点坐标,经判断笔画的类型(本发明中将笔画分成横、竖、撇、捺、点、提、勾七种)即可形成部件框架。本发明中每个笔画用其端点坐标表示,如果选定32×32模板,则表示一个笔画的两个端点需要20位(或2.5个字节)。通过对所选512个部件的笔画统计,平均每个部件需要16个字节表示,512个部件需要的空间不超过13KB。
形成部件框架后,根据字体要求,利用相应的笔画生成函数,形成字形。本发明中,笔画生成函数可采用B样条函数。B样条函数的参数,根据字体要求加以调节。B样条函数确定后,就对汉字的上述7种笔画(横、竖、撇、捺、点、提、勾)的轮廓曲线进行拟合,从而形成字形(可参见①C.W.Liao,etc.Stroke segmentation by Bernstein-Bezi-er urve fitting,pattern Recognition,23(5),475-484,1990;②严伟荣,蔡士杰,基于笔画特征的宋体字衍生方法,中文信息学报,8(4),16-22,1994)。
关于B样条函数说明如下设(x1,y1),…,(xn,yn)是平面上的几个点,P1(x),…,Pn-1(x)是多项式函数满足Pi(x)的图像经过(xi,yi)和xi+1,yi+1),

可以作为点(x1,y1)…,(xn,yn)的B样条函数。要确定它有很多种方法,各种方法的效果都不同,当Pi和Ci变化时将得到不同的字型。本发明常用的是Pi为经过(xi,yi),(xi+1,yi+1)的一次或二次函数。如令Ci为1,这时B样条一次函数的表达式为y-yix-xi=yi+1-yixi+1-xi,]]>xi≤x≤xi+1B样条二次函数表达式为y=ax2+bx+c
a,b,c由(xi,yi),(xi+1,yi+1)的最小二乘法确定。(xi,yi)为抽取笔划端点坐标间的拟合点。
由汉字表达式通过部件构造出汉字的过程中,要遵守有关汉字的生成规则。本发明中将使用如下一些规则设某一表达式为com[1]op com[2]op com[3]…op com[n],其中com[i](i=1,2…,n)为参与运算的汉字部件,op为某一已经定义好了的汉字表达式运算符号。用lenx[com[i]],leny[com[i]]分别表示部件com[i]在该汉字中应占的宽度和高度,用leftx[com[i]],lefty[com[i]]分别表示部件com[i]的左上角在该汉字中出现的位置,用lx,ly分别表示该汉字的总宽度和总高度,用x0,y0分别表示该汉字的左上角所处的坐标位置,于是(1)当op为lr时,如果设con(i1),con(i2),…,com(im)为左右型部件,则leny[com[i]]=ly,lefty[com[i]]=y0,leftx[com[i]]=leftx[com[i-1]]+lenx[com[i-1]] (i>1),leftx[com[1]]=x0,lenx[com[ij]]=R(com[ij])·lx,其中,R(x)表示左右型部件x在原模板中所占的宽度比(即部件所占的宽度除以模板总宽度)。
,当com[i]不是左右型部件时。
(2)当op为ud时,如果设com(i1),com(i2)…,con(im)为上下型部件,则lenx[com[i]]=lx,leftx[com[i]]=x0,
lefty[com[i]]=lefty[com[i-1]+leny[com[i-1]] (i>1),lefty[com[1]]=x0,leny[com[ij]]=R(com[ij])·ly,其中,R(x)表示上下型部件x在原模板中所占的高度比(即部件所占的高度除以模板总高度)。
,当com[i]不是上下型部件时。
(3)当op为ld、lu、ru、le、re、ue、de、we时,一般说来此时n=2,则leny[com[1]]=ly,lenx[com[1]]=lxlefty[com[1]]=y0leftx[com[1]]=x0第二个部件的高度、宽度及左上角的坐标要根据第一个部件决定。下面只就ue给出决定方法(其他与此类似,故略)。
为简单起见,我们以图2为例直观地予以说明。在图2中将部件1对应的区域分成6区,X轴方向平均分成3份,Y方向平均分成2份。用xmin表示第4区中笔画轨迹对应的x的最大值,xmax表示第6区中笔画轨迹对应的x的最小值,ymin表示第2区中笔画轨迹对应的y的最大值,ymax表示第4、5、6区中笔画轨迹对应的y的最大值。则有leftx[com[2]]=xmin+mlefty[com[2]]=ymin+nlenx[com[2]]=xmax-xmin-mleny[com[2]]=ymax-ymin-n(m,n为一预定值)。
m,n表示部件间的间隙,m,n一般取值为1,当字型较大时可适当增加。
对应于上述汉字字形的生成方法,本发明还设计了汉字字形自动生成装置,(或称自动生成器)它由汉字字形自动生成器专用控制卡和主计算机及其相应软件构成。
汉字字形自动生成专用控制卡的电原理图如图4所示。此卡的主要作用是存储系统的环境参数和所有汉字的数学表达式。另外,还可以防止该系统被盗用,软件只有检测到此卡存在时,才能正常工作。该控制卡由核心芯片U8、与非反向器U1、反向器U2和U3、译码器U4、双向缓冲器U5、三态缓冲器U6和U7经电路连接构成。其中,U8采用28C256芯片,其容量为32K×8,引脚数为28,它主要用于写入/读出有关参数和所有汉字数学表达式。U1采用74LS02芯片,U2、U3采用74LS04芯片,U4采用74LS30芯片。U1、U2、U4的主要作用是为U8提供读/写/片选信号,并使之正常工作。片选信号(U8的CE端)由下列地址决定CE=A19·A18·A17·A16·A15因此,存储器的地址为A0000。
U5采用74LS245芯片,其作用是隔离、缓冲和传送数据(D0-D7)。U6和U7采用74LS244芯片,其作用是缓冲、放大地址信号(A0-A12)。
本发明使用的28C256芯片的结构框图如图5所示,其引脚图见图6。28C256的引脚功能及引脚的工作方式分列由表1和表2列出。
表1
表2
本发明的软件部分的功能块结构框图如图3所示。它主要由汉字部件,部件运算规则,表达式库、部件框架、笔画书写规则、字形生成规则、形成汉字字形等功能块构成。其工作流程如图7所示。具体过程分为二个阶段预处理先确定汉字部件,然后根据汉字笔画自动抽取方法形成部件框架库,并确定汉字表达式,然后将汉字表达式存入专用控制卡。
实际处理从部件框架库中抽取部件框架,从专用控制卡中读取并生成工作环境参数,如工作环境不合适则终止运行,当工作环境适合时,再从专用控制卡中抽取当汉字表达式,由汉字表达式按汉字生成规则生成汉字框架,引入笔画生成函数形成汉字字型。
使用本发明不仅可以自动生成已有汉字字形,而且可以自动写出一些虚构的汉字。图8就是利用本发明生成的一些汉字(包括虚构的汉字)的骨架。这些汉字对应的表达式如下025lr(002ud095);025lr(061ue(002ud003));047le(024lr(002ud013));026lr(050ud000);047le054;031lu018;054ud(040ru011);027ld(019lu007);048lu003;030lr(002ud003ud062ud003);(034de000)lr017;024lr(032ru(016ud011));(006re008)le008;038we013;037ue000;033re(000ud(000lr000));003we007;04lru(013ud004);060de067;06lue(002ud003);063ud010ud075;024lr(060de(064lr083));059we003;064lr(027ld(082lu012))。
本发明选择512个汉字部件,每个部件的框架大小平均不超过16B,故每种字形的框架库大小不会超过13KB。而且,表达式库的大小不会超过23KB。因此,通过调整笔画生成函数,要生成一种字形只要13KB的字库即可完成。故本发明的特点是生成的字形丰富,字库很小,不需参考字库,而且整个生成过程都不需人机交互等。本发明可直接应用于计算机汉字信息处理、印刷、广告、中文移动通讯等领域。


图1为部分汉字部件图示。
图2为汉字部件构造图示。
图3为汉字自动生成装置软件功能块结构框图。
图4为汉字字形自动生成控制卡电原理图。
图5为图4控制卡芯片28C256的结构框6为芯片28C256引脚图。
图7为汉字字形自动生成器工作流程图。
图8为利用本发明自动生成的汉字图例。
权利要求
1.一种汉字字形自动生成方法,其特征在于将汉字表示成由汉字部件作为操作数、汉字部件间相互位置关系作为运算符的数学表达式,然后采用汉字笔画自动抽取方法形成对应于不同字体的汉字部件框架,并根据字体要求,使用相应的笔画生成函数,再按相应的规则,构造出所需的汉字字形。
2.根据权利要求1所述的汉字字形自动生成方法,其特征在于所述汉字部件共有512个。
3.根据权利要求1所述的汉字字形自动生成方法,其特征在于汉字部件的运算符号为(1)lr,A lr B表示部件A在部件B的左面;(2)ud,A ud B表示部件A在部件B的上面;(3)ld,A ld,B表示部件A在部件B的左下方;(4)lu,A lu B表示部件A在部件B的左上方;(5)ru,A ru B表示部件A在部件B的右上方;(6)le,A le B表示部件A左包含部件B;(7)re,A re B表示部件A右包含部件B;(8)ue,A ue B表示部件A上包含部件B;(9)de,A de B表示部件A下包含部件B;(10)we,A we B表示部件A全包含部件B。
4.根据权利要求2或3所述的汉字字形自动生成方法,其特征在于对汉字部件和运算符号分别编码,其中,部件编码为9位,运算符号骗码为4位。
5.根据权利要求4所述的汉字字形自动生成方法,其特征在于采用汉字笔画自动抽取方法抽取所述512个汉字部件的笔画的端点坐标,再判断笔画类型,形成部件框架。
6.根据权利要求5所述的汉字字形自动生成方法,其特征在于采用B样条函数作为笔画生成函数,可形成汉字字形。
7.根据权利要求6所述的汉字字形自动生成方法,其特征在于采用的B样条函数为一次函数或二次函数。
8.一种汉字字形自动生成装置,由汉字字形自动生成专用控制卡、主计算机和相应软件构成,其特征在于专用控制卡由核心芯片U8、与非反向器U1、反相器U2和U3、译码器U4、双向缓冲器U5、三态缓冲器U6和U7经电路连接构成,其中,U8采用28C256,U1采用74LSO2,U2和U3采用74LSO4,U4采用74LS30,U5采用74LS245,U6和U7条用74LS244。
9.根据权利要求8所述的汉字字形自动生成装置,其特征在于软件部分由汉字部件、部件运算规则、表达式库、部件框架、笔画写书规则、字形生成规则、形成汉字字形等功能块构成,其工作流程如下预处理先确定汉字部件,然后根据汉字笔画自动抽取方法形成部件框架库,并确定汉字表达式,然后将汉字表达式存入专用控制卡;实际处理从部件框架库中抽取部件框架,从专用控制卡中读取并生成工作环境参数,当工作环境合适时,从专用控制卡中抽取汉字表达式,由汉字表达式按汉字生成规则生成汉字框架,引入笔画生成函数,形成汉字字形
全文摘要
本发明涉及一种汉字字形自动生成的方法及其装置。它将汉字表示成以汉字部件作为操作数、部件间结构关系为运算符号的数学表达式,存入专用控制卡中。从专用控制卡中读取工作环境参数,并抽取汉字表达式,再按汉字生成规则生成汉字框架,引入笔画生成函数,形成汉字字形。装置由汉字自动生成控制卡、主计算机和相应于本方法的软件构成。本发明生成的汉字字形丰富,字库很小,不需人机交互。可直接应用于计算机汉字信息处理、印刷、广告、中文移动通讯等领域。
文档编号G06F3/023GK1277377SQ00116218
公开日2000年12月20日 申请日期2000年5月30日 优先权日2000年5月30日
发明者孙星明, 胡运发 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1