电脑手写输入机器码的制作方法

文档序号:7533640阅读:749来源:国知局

专利名称::电脑手写输入机器码的制作方法
技术领域
:本发明电脑手写输入机器码涉及汉字编码输入
技术领域
。现有手写输入系统是用图形识别方式,如汉王笔、慧笔,而不是用自动编码方式。这种图形识别方式是先将每个手写字体逐行扫描,将有笔迹划过的点的特征记录下来,形成每个字的笔迹资料,存在微机中;在实现输入时将所写字的笔迹资料与预存的笔迹资料作对比查找,找出最接近和较接近的汉字。这种方法存在着笔迹资料存储量大,微机的计算工作量大,速度慢,容错度低,不能识别草书字体等缺点。本发明的目的是提供一种电脑手写输入机器码,它是将每个汉字按一笔一划完全拆开,顺序排列,作为汉字的基本特征。对构成一个字的每一笔划分成两种第一种为“点捺横提”,从左到右,产生的代码为“0”;第二种为“竖撇”,从上到下,产生的代码为“1”,而其余方向的笔划就是无效的连笔。再用构成汉字的其它特征,如交叉笔划、转折笔划等,也产生一些二进制数码。一个手写字体写完后,电脑就可以自动计算出该字体的机器码,即一个固定长度的二进制数码。用机器码来调用汉字库实现输入的目的。本发明电脑手写输入机器码的构思是一.机器码的有关定义1.笔序码和笔数码(基本特征码)笔在“写字板”上触及到的地方可记录下它的坐标位置,计算出汉字笔迹的运行方向,可分为下面三种情况(1)“0”笔划提横点捺,主要特征为“从左到右”,对应一个“0”码。(2)“1”笔划竖撇,主要特征为“从上到左下”,对应一个“1”码。(3)无效笔划主要特征为“从右到左,从下到上”,不产生笔划码,是无效的连笔。从图1上可以看到还有两个“待定区”待定区(1)如果本笔划是上连“横提笔划”,则本区内的笔划无效。待定区(2)如果本笔划是“短”并后连有长笔划,则本区内的笔划无效。一笔划必有起点和终点,但起点到终点之间还可能有其它特征点,如停点、拐点、叉点。由横坐标或纵坐标的变化值ΔXn=Xn+1-Xn或ΔYn=Yn+1-Yn产生正负变化的点坐标称为停点或称转向点,见图2,A、K分别为起点和终点,其余各点为停点,点BCGI为横向停点,点DEFHG为纵向停点。当恰为三个连续横向停点或纵向停点时,自动取消中间一个停点;当两个纵向停点中间恰好夹着一个横向停点时,自动去掉中间横向停点。从起点到终点,中间再加上可能依次出现的有效停点,便构成一个点序,顺次取出两个相邻点的坐标值,便可计算出该单笔划的方向,从而确定该单笔划码为“0”、“1”或者是“无效”。当单笔划码确定为“无效”时,前一停点处理为前一笔划的结束点,后一停点处理为下一笔划的开始点。当单笔划码不只一个,中间又没有“无效笔划”时,若后面出现的单笔划码与前一个单笔划码相同则取消该单笔划码,即是说连续单笔划码必须是“0”和“1”相间而列。一个字写完后,该字的单笔划码依次构成的序列称为“笔序码”,其总数减1的二进制形式称为“笔数码”。如“永”的笔序码为“0010110”,笔数码为“110”。笔序码的计算方法也可简化为只由考虑横停点(即ΔX的变号点),坐标轴按图1所示来建立,设X1、X2、...Xn为字体中一笔划的起点、停点,终点的横坐标,并有与之对应的Y1、Y2、...Yn纵坐标,笔序码的计算可用下述方法如果X2-X1>0若Y2-Y1>0且4(X2-X1)≤(Y2-Y1)则笔序码置1若Y2-Y1<0且2(X2-X1)≤(Y2-Y1)则为无效笔划若Y2-Y1>0且(Y2-Y1)/4<(X2-X1)<2(Y2-Y1)则为待定区2处理子程序否则笔序码置0如果X2-X1≤0若Y2-Y1>0且(Y2-Y1)<(X2-X1)<(Y2-Y1)则为特定区1处理子程序若Y2-Y1>0且Y2-Y1≥X2-X1则笔序码置1子程序。否则为无效笔划处理程序。重复上述步骤,逐个计算到终点,将一个字体的每一笔划依次计算到结束点,便可得出该字的笔序码。超过规定的有效数位便可不再记录笔序码,而只让笔数码继续累加。2.拐序码和拐数码一个字的每一笔划的起点到终点之间产生的单笔划码不止一个时,从第二个开始的单笔划码称为“拐序码”,拐序码的总数的二进制形式称为“拐数码”。如“永”的拐序码为“110”,拐数码为“11”。3.叉序码和叉数码无效笔迹的前一停点,就是前一笔划的终点;无效笔迹的后一停点,就是下一笔划的起点。一个字的笔迹点序记录中除去无效笔迹的点坐标,当后面的笔划与前面笔划交叉并且前面的单笔划码与后面的单笔划码不同时,产生的有效交叉点称为“叉点”,将这后面的单笔划码取出来,依次构成的序列称为“叉序码”,叉点总数的二进制形式称为“叉数码”。叉序码和叉数码根据所使用的具体机器码编码方案中对其位数的不同要求在组合成机器码时要用规定的方法来修定。如“丈”的叉序码为“10”,叉数码为“10”。又如图3中的手写字体的笔序码为“1010”笔数码为“11”,拐序码为“0”,拐数码为“1”,叉序码为“100”,叉数码为“11”。4.首笔码和尾笔码每个字的第一笔划的长短,是否下连,是否在待定区内,分别用0或1来区分,从而产生的三位二进制数码称为“首笔码”。如规定第一笔划是“长”(超过田字格边长之半);没有下连笔划;不在待定区内,其首笔码就为“000”,其余情况都能推出。每个字的结尾笔划的长短,是否上连,是否在待定区内,分别用0或1来区分,从而产生的三位二进制数码称为“尾笔码”。具体设定同上面一样。5.位置码一个字的偏旁部首所占“田字格”的位置不同,用二位二进制数码区分出四种不同的状态,从而形成的二进制数码称为“位置码”。四种状态可分为;“00”表示四格均出现笔迹而查无偏傍部首的“整字形”,“01”表示只占田字格左方两格的左偏傍部首,“10”表示占上两格的上偏傍部首和“框架部首”,“11”表示只占田字格中某一格的标点符号,见表1。机器码主要考虑了笔划特征。而汉字的块状特征也是极明显的,对机器码或部首码是否结束的判定是极有用的。汉字字型可分为三类左右型、上下型和框架型。左右型是要将左边书写完后再写右边,即是说分为左右成块书写,两块独立互不相干;上下型也一定是要写完上块,再写下块;而框架型总有一个框架,其它笔划总是在框架下或框架内书写。参见表1。部首笔划是否结束,用上述块状特征是否出现作为依据,而整个字是否结束则可用是否书写到下一“田字格”作为依据。表16.字符码写入英文字母、数字和符号时,系统切换到该状态下,以不同于汉字机器码的计算方法,计算出英文字母机器码,这时“字符码位”置1,如果是书写汉字,则“字符码位”为0。7.独合码整个笔迹只占田字格的一格或二格时取“1”,否则取“0”。8.特种码用于区分个别重码的区分特征而空留的二进制数位。此码也可用于象“日文”平假名、片假名或其它特种文字的记载。9.英文字母机器码从起点到终点之间依次找出所有停点或转向点,如果只是x坐标的转向点,则产生一个“0笔划码”;如果只是y坐标的转向点,则产生一个“1笔划码”;如果x、y坐标同时转向,则将前一个停点或起点与该点的坐标值相减而定Δx绝对值更大就产生一个“0笔划码”,否则产生一个“1笔划码”,按照使用的具体机器码要求所组合出的二进制数码称为英文字母机器码。10.数字和符号的机器码数字和符号的机器码既可用汉字机器码的计算方法又可用英文字母机器码的计算方法来产生出数字和符号的机器码。11.部首机器码、主体机器码和部首码预存部首总数不得超过127个。部首码只存先书写出笔划的“部首”,而不包括结尾的部首。把要预存的部首按一个顺序排好(参见表1),每种部首可多写入一些形体,每种部首顺次分得一个8位的二进制与之对应,建成一个预存部首码表。将部首字体在“田字格”中书写出来,根据前面所述汉字的基本特征码和区分特征码按编码方案中的组合要求所形成的机器码称为部首机器码。在预存部首机器码表中,每一部首所分得的一个8位二进制数码称为部首码。除去部首之外的所有笔划按编码方案中的组合要求所产生的机器码称为主体机器码。参见机器码编码方案,部首机器码分20位、24位、32位等几种。12.混合机器码一个字体写完之后,根据字体的基本特征码和区分特征码按编码方案中的组合要求所形成的机器码称为混合码,混合机器码分为16位、20位、24位、32位等几种。13.汉字读音码汉字读音不超过3675个(按五种声调计算),用16位的二进制数来记录汉字读音是足够的。声母用5位二进制数,韵母用6位二进制数,声调用二位二进制数来记录,空留的14、15位可用来记录方言,并按下表组合出汉字读音码;</tables>在机器码表之后可添入汉字读音码。形式如下</tables>汉字读音码,专门用来调用汉字的各种读音,当然还得先建有汉字读音模块。在手写一个汉字时,用机器码来查找该字,用国标码来输入汉字,同时可用读音码来返回出汉字的读音。本发明电脑手写输入机器码的效果是1.容量大</tables>实际上由于有一部份机器码书写不出,可以大打折扣,但对付七千多个汉字,甚至所有的五六万个汉字都是绰绰有余的。2.重码少正因为机器码的容量特别大,再加上抓住了汉字构造的优秀特征,机器重码是极少的。即使有,对某字体的重码也最多一两个。就是说,从本编码方案中的二进制原理分拆汉字是最有效的。并可见汉字是世界上最简明最丰富最优秀的文字。3.识别手写字体容错度高、速度快显而易见,本编码方案有极好的容错度。因为,“0笔划”、“1笔划”和“无效笔划”是极不易书写混淆的。本编码也最为有效的解决了手写汉字的连笔问题,简化字、行书、草书等问题。只需预写一遍,放入码表中。如果你要将行草字体单独存放在码表中的某个位置也行,将特种码置位即可,而用机器变码方法又可将它们方便地与普通机器码联起来。如对字体混写的使用者,在输入时,先将特种码置位,在机器码表较后面的行草部分查表,若查无此码,再将特种码复位为“0”,在普通字体部分查表。可以达到手写多快,输入就多快,写完就立刻产生编码,立刻完成输入。4.内存空间占用小要求内存空间并不大。32位标准机器码表只需7KBx6=42KB,而就算每个汉字都存入10种不同笔顺笔划的写法也只需420KB。5.使用简单、自然、灵活使用者平时怎么写就怎么写。电脑不认识你就它学,并且它一学就会。图1是本发明电脑手写输入机器码的汉字笔迹运行方向图;图2是基本特征码中一笔划的起点、终点和转向点结构图;图3是手写字体的笔序码、笔数码、拐序码、拐数码、叉序码、叉数码的结构图。本发明的实施例是一.编码输入实现方式1.预先建立好机器码表对一个汉字可以有多种不同书写笔顺笔划构成的不同字体,根据笔迹运行的方向变化和其它特征,通过电脑自动计算,产生一个由“0”或“1”组成的二进制数码为机器码。让每个机器码与它代表的汉字或字符的国标码对应起来建成一个“机器码表”,预先存入电脑。七千来个汉字和字符,对应有自己的国标码,按照国标码从小到大的排列顺序,依次得到一种汉字顺序,如“啊,阿,埃......”。在“建立机器码表程序”下,依次书写所有汉字及字符,对每个字,尽可能多写一些手写字体,多产生一些机器码,每个机器都由该字的国标码与之对应。这样,将每个字的多种字体都写完,建立一个按国标码顺序排列有码圾。只需在“机器码排列程序”下,将码表的顺序按机器从小到大的顺序排好,就完成了机器码表的预置。机器码与国标码的对应关系是多个机器码对应着同一个国标码(越是“多对一”,识别效果越好),或者一个机器码对应着多个国标码(“一对多”,就是重码)。在实现手写字体输入时,对根据手写字体笔迹计算出来的机器码,在“查表程序”下,只需调出该字体的国标码,并显示该字形。使用者可能根本不知道机器码,也无需了解机器码。预存码表中存入的手写字体,应有标准的正楷字体,通用的多种手写字体,当然太多的杂异写法可能导致多余的重码。经过多数人的书写和反复调整,建立好一个有效通用的预存码表。2.查机器码表,实现输入当需要输入某汉字或字符时,手写其字体,随即产生一个机器码,通过电脑自动查机器码表,调出对应的国标码,实现输入。3.扩充机器码表当使用者书写自创字体时,在预存码表中查无此码,只需用标准笔顺笔划书写一遍,调出该字的国标码,纳入新字体,可将整个码表扩充几十倍。二、编码方案开发产品时,可选用以下几种方案之一来实现。1.方案一16位混合机器码</tables>无叉点时叉数码为“00”,1个叉数点时叉数码为“01”,2个叉数码时叉数码为“10”,3个及3个以上的叉点时叉数码为“11”,叉数码放在机器码的14、15上。叉序码超过2个者只取前二位,不足2位者后补“0”添至2位,叉序码放在机器码的12、13位上。单笔划码超过16个时笔数码均取“1111”,不足4位的笔数码用前补“0”添至4位,笔数码放在机器码的8至11位上。笔序码超过8个者只取前8个,不足8位的笔序码用后补“0”添至8位,笔数码放在机器码的0至7位上。拐数码只有在笔序码留有后补的“0”足以放进拐数码时才将拐数码叠加在笔序码的后面的数位上。例如“软”的叉数码为“11”,叉序码为“110”,笔数码为“1001”,前8个单笔划码“01010101”组合起来得到16位混合机器码为“1111100101010101”。又如“又”的机器码为“0100001001000001”;“叉”的机器码为“0100001101000001”;“大”的机器码为“0110001001000000”;“丈”的机器码为“1010001001000000”。2.方案二20位部首机器码分两步完成。第一步是连续查找是否为某一部首,当确认是某部首时调出该“部首码”,一直找不到部首时调出一个特定“部首码”(“00000000”)。若出现两个部首码,取笔划多者,即后出现者。这须要预先存入所有部首的“部首机器码表”,每个部首分得一个固定的8位二进制数码。对所有没有部首的字体,规定一个特定的部首码“00000000”与之对应。第一个部首码为“00000001”,第二个部首的部首码为“00000010”,以此类推。对要预存的部首字体,在其相应的“田字格”中写出,即可计算出有关的各种码,关按下表要求组合成20位部首机器码。</tables>部首码表中尾部的部首码是该部首分得的固定的8位二进制数码,表中前面部份是部首机器码。8位的笔序码要求在笔序码中只保留前8位单笔划码,不足8位的“后补0”添至8位。拐数超过3个时与拐数为3个一样,拐数码都为“11”,拐数码只在单笔划码个数不大于6个时才叠加笔序码的后面码位上。笔数码不足3位的“前补0”,单笔划码超过8个的笔数码均为“111”。起笔码取首笔码的二、三位数码的“逻辑或”。叉序码只保留前两位,不足两位的“后补0”添至2位。叉点数超过3个的叉数码均取“11”,叉数码不足两位者“前补0”。对表1中的列出的每一个部首,书写其部首字体,按上述部首码表中的规则产生部首机器码,建立码表完成所有部首的预存。第二步在写完某笔时,查出有某个部首码,调出该部首码、并加上该笔划之后的所有有效笔划所形成的主体机器码,从而形成该字的机器码。</tables></tables>例如对3.方案三24位部首机器码象20位部首机器码一样,也分两步完成</tables>第一步为部首检测时产生的机器码。当部首检测完成,并调出部首码后,该机器码便被弃掉;第二步中0~15位为主体机器码,是除开部首之外的笔划所形成的。当整个字无部首时产生一个特定的部首码,而该字从每一笔划至最后一笔所产生的机器码自动修定为第二步中的主体机器码。例如计算“说”的机器码时,第一步当写出左部首“讠”产生部首机器码为“000000010000101100100010”,调出其部首码“00001100”(“讠”部首在第12位上),“说”的主体机器码为“0000100011101011”,“说”的24位部首机器码为“000011000000100011101011”。4.方案四24位混合码(两种)</tables>第一种机器码的各部份码位要求前面已说明过。若是在英文字母状态下“字符码”为“1”,若是标点符号“独合码”为“1”。第二种机器码中“笔数码”是按四位的要求,笔序码是保留前12位,其余的码位要求前面已说明过。例如“输”字符码为“0”首笔码为“000”笔数码为“1110”叉数码为“11”叉序码为“11”笔序码“010101001010”,“输”的24位混合码第二种为“000011101111010101001010”。5.方案五32位部首码</tables>第一步为部首字体所产生的机器码,调出部首码后便去掉;第二步为去掉部首字体后的笔划,按与第一步相同的取码要求所产生的主体机器码,并将第一步调出的部首码放在主体机器码的前面,第二步所形成的32位机器码用来查机器码表调用汉字。例如计算“两”的机器码。第一步,每写一笔划就查一次预存部首码表,至到最后一笔写完,没有查到其部首,调出特定部首码“00000000”;第二步,特种码为“0”,字符码为“0”,独合码为“0”,首笔码为“000”,位置码为“00”,叉数叉序码为“1000”,笔数码为“0111”,笔序码为“01010101”。组合成“两”的32们部首机器码为“00000000,00000000,10000111,01010101”,用此码查“预存机器码表”,调出“两”的国标码,实现输入。6.方案六32位混合码(两种)</tables>第一种要求保留的笔序码位数为16位;第二种要求保留的笔序码位数为14位,叉序码保留4位,其余同前面一样。例如“数”的特种码为“0”,字符码为“0”,独合码为“0”,首笔码为“101”,位置码为“00”,叉数码为“11”,笔数码为“1101”。第一种叉序码为“11”,笔序码为“0101101010101000”,第二种叉序码为“1100”,笔序码为“01011010101010”,组合起来,第一种机器码为“00010100111111010101101010101000”。第二种机器码为“00010100111100110101011010101010”。上述方案中,部首机器码都需要两步完成,第一步按部首字体查预存部首机器码表,第二步查预存机器码表,调用汉字库实现输入,其优点是可以调出同一部首下的所有汉字,机器码分布较均匀,并能将重码减到可能找不出的程度,而其缺点是要进行该部首是否写完的部首尾笔的断定。混合机器码只需一步查预存机器码表,调用汉字库实现输入。机器码的编码方案,还可根据程序设计需要进行调整,也可在对汉字构造特征的进一步理解和开发的基础上优化编码方案。究竟哪种机器码的性能更好,我认为在产品开发时是不难比较的。两种或多种机器码合用在产品中是可行的,可能更有效。权利要求1.一种电脑手写输入机器码,其特征是笔在“写字板”上触及到的地方记录下它的坐标位置,计算出汉字笔迹的运行方向,按二进制形式处理为基本特征码、拐序码和拐数码、叉序码和叉数码、首尾码和尾笔码、位置码、字符码、独合码、英文字母机器码,部首机器码、主体机器码、部首码、混合机器码构成。2.根据权利要求1所述的电脑手写输入机器码,其特征是笔序码和笔数码(基本特征码)由0笔划、1笔划、无效笔划组成,它是将一个字体的每一笔划依次计算到结束点的序列为笔序码,其总数减1的二进制形式为笔数码构成。3.根据权利要求1所述的电脑手写输入机器码,其特征是拐序码和拐数码由一个字的每一笔的起点到终点之间产生的单笔划码不止一个时,从第二个开始的单笔划码称为拐序码,拐序码的总数的二进制形式称为拐数码构成。4.根据权利要求1所述的电脑手写输入机器码,其特征是叉序码和叉数码由一个字的笔迹点序记录中除去无效笔迹的点坐标,当后面的笔划与前面笔划交叉并且前面的单笔划码与后面的单笔划码不同时,所产生的有效交叉点称为叉点,将这后面的单笔划码取出来,依次构成的序列称为叉序码,叉点总数的二进制形式称为叉数码。5.根据权利要求1所述的电脑手写输入机器码,其特征是首笔码和尾笔码由每个字的第一笔划的长短,是否下连或上连,是否在待定区内,分别用0或1来区分,从而产生的三位二进制数码称为首笔码或尾笔码。6.根据权利要求1所述的电脑手写输入机器码,其特征是位置码由一个字的偏旁部首所占“田字格”的位置不同,用二位二进制数码区分出不同的状态,从而形成的二进制数码称为位置码。7.根据权利要求1所述的电脑手写输入机器码,其特征是字符码由区分书写汉字或书写英文字母所产生的1位二进制数码称为字符码。8.根据权利要求1所述的电脑手写输入机器码,其特征是独合码由整个笔迹只占田字格的一格或二格时取“1”,否则取“0”构成。9.根据权利要求1所述的电脑手写输入机器码,其特征是英文字母机器码由字母基本特征码按使用的具体机器码组合出的二进制数码称为英文字母机器码。10.根据权利要求1所述的电脑手写输入机器码,其特征是部首机器码、主体机器码和部首码由部首字体所形成的机器码称为部首机器码,按部首顺序分给每个部首的一个8位二进制数码称为部首码,一个汉字除去部首笔划后所剩笔划产生机器码,称为主体机器码,部首机器码分20位、24位、32位等几种。11.根据权利要求1所述的电脑手写输入机器码,其特征是混合机器码由一个字体写完之后将基本特征和其它区分特征所形成的二进制数码称为混合机器码,混合机器码分为16位、20位、24位、32位等几种。全文摘要本发明公开了一种电脑手写输入机器码,涉及汉字编码输入
技术领域
。主要技术特征是笔在“写字板”上触及到的地方记录下它的坐标位置,计算出汉字笔迹的运行方向,按二进制形式处理为基本特征码、拐序码和拐数码、叉序码和叉数码、首笔码和尾笔码、位置码、字符码、独合码、英文字母机器码、部首机器码、主体机器码和部首码、混合机器码构成,具有识别汉字手写体形总数容量大,手写字体容错度高,速度快和使用简单,自然,灵活的效果。文档编号H03M11/00GK1197333SQ9811188公开日1998年10月28日申请日期1998年3月9日优先权日1998年3月9日发明者柏凯申请人:柏凯
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1