本发明涉及计算机应用技术领域,具体而言,涉及一种内部短笔段的处理方法和装置。
背景技术:
历代书法名家的作品都是静态的;市面上很多的书法字帖也都是静态的。然而,汉字书写的动态过程在书法艺术鉴赏、书写教学等方面意义明显。所以,对静态字帖汉字的书写过程进行动态还原是非常有必要的。
在静态字帖汉字书写过程的动态还原过程需要解决两个关键问题:字帖汉字骨架笔段的提取,以及对骨架笔段序列的消歧和排序。目前,在汉字的骨架笔段提取方面,已经出现很多方法。例如,外围轮廓法、数学形态法、段化法、区域分解法、模糊区域检测法、基于细化的方法、基于距离的方法、基于方向游程长度的方法、基于编码的方法、基于神经元网络的方法等。这些方法基本都是基于印刷体的汉字识别而提出的,因而它们对汉字具有较强的限制,在字符集的容量上、字体字形的视觉效果上都具有很强的约束性。
目前,在对汉字笔段消歧和排序方面研究较少,主要有以下几种方法:第一种,通过定义规则生成汉字的笔顺,并通过计算与标准模板中的笔顺的相似度进行纠正,该方法难以区分相同笔顺的近似字,分辨率不高;第二种,重构数字字符笔迹顺序的方法,通过搜寻最小代价的hamilton路径来重构书写笔迹,但该方法只能用于数字等复杂程度低的字符集合,并且上述方法均不能适应汉字字形的各种笔画;第三种,针对每一个汉字建立一个笔段消歧规则,该方法不能实现笔段歧义畸变的自动识别和处理,且数据量大、适应性低,对于笔段消歧规则中不包含的歧义无法消除。
针对上述现有技术在汉字笔段消歧中无法自动处理笔段歧义畸变的问题,目前尚未提出有效的解决方案。
技术实现要素:
本发明实施例提供了一种内部短笔段的处理方法和装置,以至少解决现有技术在汉字笔段消歧过程中无法自动处理笔段歧义畸变的技术问题。
根据本发明实施例的一个方面,提供了一种内部短笔段的处理方法,包括:在判断汉字的骨架笔段为内部短笔段的情况下,删除所述内部短笔段,其中,所述内部短笔段是其笔段两端各自有两个邻接笔段的骨架笔段;将与所述内部短笔段相邻的其他骨架笔段删除预定长度的骨架笔段得到部分相邻笔段,其中,所述预定长度的骨架笔段是在所述内部短笔段的预定阈值范围内的部分骨架笔段;将所述部分相邻笔段进行平滑连接组成新的骨架笔段,其中,所述新的骨架笔段与汉字二值图像的中心线相吻合的。
进一步地,将与所述内部短笔段相邻的其他骨架笔段删除预定长度的骨架笔段得到部分相邻笔段之前包括:判断与所述内部短笔段连通的所有内部短笔段的数量;根据连通的内部短笔段的数量确定所述预定阈值。
进一步地,判断与所述内部短笔段连通的所有内部短笔段的数量为一的情况下,所述预定阈值根据所述内部短笔段的长度来确定。
进一步地,判断与所述内部短笔段连通的所有内部短笔段的数量不为一的情况下,所述预定阈值根据所述内部短笔段的平均宽度来确定。
进一步地,将所述部分相邻笔段进行平滑连接组成新的骨架笔段包括:判断任意两条部分相邻笔段的端点切向量的夹角;如果所述切向量夹角符合预定角度,则将两条部分相邻笔段进行平滑连接组成一条新的骨架笔段。
进一步地,将所述部分相邻笔段进行平滑连接组成新的骨架笔段包括:判断任意两条部分相邻笔段的端点切向量的夹角;如果所述切向量夹角不符合预定角度,则将所述部分相邻笔段延长至与所述内部短笔段相交的位置处。
进一步地,将所述部分相邻笔段进行平滑连接组成新的骨架笔段包括:判断任意两条部分相邻笔段是否能够拟合为一条没有拐点的平滑线段;如果是,则将两条部分相邻笔段进行平滑连接组成一条新的骨架笔段。
进一步地,将所述部分相邻笔段进行平滑连接组成新的骨架笔段包括:判断任意两条部分相邻笔段是否能够拟合为一条没有拐点的平滑线段;如果否,则将两条部分相邻笔段延长至与预设直线相交的位置处,其中,所述预设直线是所述内部短笔段的包围盒中心点坐标所对应的直线。
根据本发明实施例的一个方面,提供了一种内部短笔段的处理装置,包括:第一删除模块,用于在判断汉字的骨架笔段为内部短笔段的情况下,删除所述内部短笔段,其中,所述内部短笔段是其笔段两端各自有两个邻接笔段的骨架笔段;第二删除模块,用于将与所述内部短笔段相邻的其他骨架笔段删除预定长度的骨架笔段得到部分相邻笔段,其中,所述预定长度的骨架笔段是在所述内部短笔段的预定阈值范围内的部分骨架笔段;构建模块,用于将所述部分相邻笔段进行平滑连接组成新的骨架笔段,其中,所述新的骨架笔段与汉字二值图像的中心线相吻合的。
根据本发明实施例的一个方面,提供了一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序执行上述的方法。
在本发明实施例中,采用在判断汉字的骨架笔段为内部短笔段的情况下,删除所述内部短笔段,其中,所述内部短笔段是其笔段两端各自有两个邻接笔段的骨架笔段;将与所述内部短笔段相邻的其他骨架笔段删除预定长度的骨架笔段得到部分相邻笔段,其中,所述预定长度的骨架笔段是在所述内部短笔段的预定阈值范围内的部分骨架笔段;将所述部分相邻笔段进行平滑连接组成新的骨架笔段,其中,所述新的骨架笔段与汉字二值图像的中心线相吻合的方式,进而解决了现有技术在汉字笔段消歧过程中无法自动处理笔段歧义畸变的技术问题,使得当检测到笔段为内部短笔段时,可以自动的删除内部短笔段并在合适的位置进行光滑连接,保证后续的排序等处理更加顺畅。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据现有技术的一种内部短笔段的处理方法的流程图;
图2是根据本发明实施例的一种内部短笔段的处理装置的示意图;
图3是根据本发明实施例的一种可选的字帖汉字的采集结果的示意图;
图4是根据本发明实施例的一种可选的字帖汉字的采集结果的示意图;
图5是根据本发明实施例的字帖汉字图像的二值化结果的示意图;
图6是根据本发明实施例的字帖汉字图像的细化结果的示意图;
图7是根据本发明实施例的汉字骨架中像素点分类的示意图;
图8是根据本发明实施例的提取的骨架笔段的示意图;
图9是根据本发明实施例的骨架笔段分类的示意图;
图10是根据本发明实施例的一种“毛刺判断模块”的流程图;
图11是根据本发明实施例的毛刺类型骨架笔段的识别结果举例的示意图;
图12是根据本发明实施例的“内部短笔段判断模块”的流程图;
图13是根据本发明实施例的三角形法则的第一示意图;
图14是根据本发明实施例的三角形法则的第二示意图;
图15是根据本发明实施例的三角形法则的第三示意图;
图16是根据本发明实施例的三角形法则的第四示意图;
图17是根据本发明实施例的三角形法则的第五示意图;
图18是根据本发明实施例的三角形法则的第六示意图;
图19是根据本发明实施例的内部短笔段类型的示意图;
图20是根据本发明实施例的分组中只包含一条内部短笔段时的处理效果对比图;
图21是根据本发明实施例的分组中包含多条内部短笔段时的处理效果对比图;
图22是根据本发明实施例的坐标系的示意图;
图23是根据本发明实施例的“笔画转折毛刺”消歧处理过程中毛刺及其方向向量示意图;
图24是根据本发明实施例的“笔画转折毛刺”消歧处理过程中骨架笔段端点的示意图;
图25是根据本发明实施例的“笔画转折毛刺”消歧处理过程中连接点的示意图;
图26是根据本发明实施例的“笔画转折毛刺”消歧处理过程中新笔段生成示意图;
图27是根据本发明实施例的“笔画转折毛刺”处理前后对比图;
图28是根据本发明实施例的“笔画粘连毛刺”消歧处理过程中骨架笔段新端点的示意图;
图29是根据本发明实施例的“笔画粘连毛刺”消歧处理过程中关键点的示意图;
图30是根据本发明实施例的“笔画粘连毛刺”消歧处理过程中直线拟合比较的示意图;
图31是根据本发明实施例的“笔画粘连毛刺”消歧处理过程中新笔段生成结果的示意图;
图32是根据本发明实施例的“笔画粘连毛刺”处理前后对比图;
图33是根据本发明实施例的三叉点调整前后的对比图;
图34是根据本发明实施例的“宋”字书写过程动态重现及结果示意图;
图35是根据本发明实施例的标准字“宋”的字形结构信息的示意图;
图36是根据本发明实施例的标准字“宋”的采样点信息的示意图;
图37是根据本发明实施例的“宋”的采集结果的示意图;
图38是根据本发明实施例的二值化算法流程的流程图;
图39是根据本发明实施例的平滑手写字边缘像素的模板的示意图;
图40是根据本发明实施例的“宋”字图像的预处理结果的示意图;
图41是根据本发明实施例的“宋”字的细化骨架结果的示意图;
图42是根据本发明实施例的“宋”字字形骨架提取结果的示意图;
图43是根据本发明实施例的“宋”字骨架笔段分类结果的示意图;
图44是根据本发明实施例的“宋”字内部短笔段组处理示意图;
图45是根据本发明实施例的“宋”字内部短笔段组的处理效果图;
图46是根据本发明实施例的笔画粘连毛刺的处理示意图的示意图;
图47是根据本发明实施例的笔画转折毛刺的处理示意图;
图48是根据本发明实施例的“宋”字中毛刺笔段的处理效果对比的示意图;
图49是根据本发明实施例的“宋”字中长笔段三叉点的处理示意图;
图50是根据本发明实施例的“宋”字长笔段处理效果对比图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种内部短笔段的处理的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种内部短笔段的处理方法,如图1所示,该方法包括如下步骤:
步骤s102,在判断汉字的骨架笔段为内部短笔段的情况下,删除所述内部短笔段,其中,所述内部短笔段是其笔段两端各自有两个邻接笔段的骨架笔段;
步骤s104,将与所述内部短笔段相邻的其他骨架笔段删除预定长度的骨架笔段得到部分相邻笔段,其中,所述预定长度的骨架笔段是在所述内部短笔段的预定阈值范围内的部分骨架笔段;
步骤s106,将所述部分相邻笔段进行平滑连接组成新的骨架笔段,其中,所述新的骨架笔段与汉字二值图像的中心线相吻合的。
当判断骨架笔段的类型为内部短笔段时,需要对针对该种类型的笔段进行消歧处理,现有技术没有针对这种笔段的消歧方法,本实施例通过删除内部短笔段,并将删除的地方重新连接为光滑的与汉字二值图像的中心线相吻合的笔段,在内部短笔段类型的笔段后也不会带来新的错误和畸形,保留了正确的原有笔段模拟了正确原有笔段的连接(与标准字库中的标准字笔段相对应),解决了现有技术在汉字笔段消歧过程中无法自动处理笔段歧义畸变的技术问题,使得当检测到笔段为内部短笔段时,可以自动的删除内部短笔段并在合适的位置进行光滑连接,使后续的排序等处理更加顺畅,从而保证了逼真的动态还原效果。
内部短笔段在进行消歧处理时可以划分为两种类别分别进行不同的消除处理,可以在将与所述内部短笔段相邻的其他骨架笔段删除预定长度的骨架笔段得到部分相邻笔段之前进行类别划分,在一个可选的实施方式中,判断与所述内部短笔段连通的所有内部短笔段的数量;根据连通的内部短笔段的数量确定所述预定阈值。
在判断与所述内部短笔段连通的所有内部短笔段的数量为一的情况下,在一个可选的实施方式中,所述预定阈值可以根据所述内部短笔段的长度来确定。
在判断与所述内部短笔段连通的所有内部短笔段的数量不为一的情况下,在一个可选的实施方式中,所述预定阈值可以根据所述内部短笔段的平均宽度来确定。
通过对不同种类的内部短笔段采用不同阈值计算方式,使得分辨率更高,消歧更加精准。
在判断与所述内部短笔段连通的所有内部短笔段的数量为一的情况下,将所述部分相邻笔段进行平滑连接组成新的骨架笔段可以通过夹角来进行判断,在一个可选的实施方式中,即,判断任意两条部分相邻笔段的端点切向量的夹角;如果所述切向量夹角符合预定角度,则将两条部分相邻笔段进行平滑连接组成一条新的骨架笔段。
在一个可选的实施方式中,将所述部分相邻笔段进行平滑连接组成新的骨架笔段包括:判断任意两条部分相邻笔段的端点切向量的夹角;如果所述切向量夹角不符合预定角度,则将所述部分相邻笔段延长至与所述内部短笔段相交的位置处。
通过上述方法,能够更加准确的处理静态汉字中的笔画相交情况。上述方法可以有效识别、连接相交笔画,并使得相交笔画能够平滑的、精确的拟合原始汉字笔迹的中心线。
在判断与所述内部短笔段连通的所有内部短笔段的数量不为一的情况下,将所述部分相邻笔段进行平滑连接组成新的骨架笔段,在一个可选的实施方式中,先判断任意两条部分相邻笔段是否能够拟合为一条没有拐点的平滑线段;如果是,则将两条部分相邻笔段进行平滑连接组成一条新的骨架笔段。在判断任意两条部分相邻笔段不能能够拟合为一条没有拐点的平滑线段的情况下,在一个可选的实施方式中,将两条部分相邻笔段延长至与预设直线相交的位置处,其中,所述预设直线是所述内部短笔段的包围盒中心点坐标所对应的直线。
通过上述方法,能够更加准确的处理静态汉字中3个及其以上的笔画交接在一起的情况。针对这种情况,上述方法可以有效识别、连接相交笔画,同时适当延长相接笔画,最终得到能够精确拟合原始汉字笔迹中心线的一系列笔段。
下面结合一个可选的实施方式举例对上述所有步骤进行说明:
一、先采集字帖汉字图像作为需要处理的汉字:使用扫描仪、照相机等图像采集设备,将市面上不同作者、不同字体的字帖汉字转换成为数字图像,以便进行后续处理。从两种汉字字帖中采集的数字图像如图3、4所示。
二、字帖中的汉字图像进行二值化,该步骤的目的是,去除字帖汉字图像中的噪声信息,区分出前景的汉字区域和背景区域。具体操作是,将字帖汉字图像转化为只有黑白两种颜色的二值图像,如图5所示,字帖汉字图像的二值化工作具体包括如下步骤:将字帖汉字图像转换成为灰度图像,去除彩色信息;将灰度图像转换成为二值图像。其中前景色为黑色,表示汉字;对二值图像进行去噪处理。去除图像中的孤立噪点,并使前景汉字的边缘平滑。
三、对二值化后的图像再进行细化,对步骤二中得到的二值图像进行细化操作,从而得到单像素宽度的汉字骨架图像。这里要尽量保证,汉字骨架与二值图像的中心线重合。如图6所示,黑色信息为汉字书写区域,中间的白色线条为汉字骨架图像。
四、骨架笔段的图像提取:
以步骤三的结果为基础,从中提取字帖汉字的骨架笔段。提取字帖汉字骨架笔段的规则可以包含如下两步:
(1)遍历骨架上的所有像素点。对于某一个骨架像素p来讲,进行如下判断:如果在它的8连通区域中其他骨架像素点的数量为2,那么将p标记为骨架笔段的内部点;如果在它的8连通区域中其他骨架像素点的数量不为2,那么将p标记为骨架笔段的端点。如图7所示,它对骨架图像的四个局部区域进行了放大。在局部区域a、b中,黑色像素表示骨架笔段的内部点,斜线阴影像素表示骨架笔段的端点。根据上述规则,可以将步骤4中的骨架图像表示为包含n个骨架笔段的集合s。s的表达形式如下:s={s1,s2,…,sn},其中,si={u,w1,w2,…,wj,…,v},i=1,2,…,n。在这里,u、v来自骨架笔段的端点集,wj为在u、v之间、且彼此依次相邻的内部点。
(2)对于上一步得到的骨架笔段,采用如下操作进一步细分:遍历每一个骨架笔段si,找到笔段内部的所有拐点。基于这些拐点,将原有骨架笔段进行切分。如图7中的局部区域c,其中的斜线阴影像素为一个拐点,它会将原来的骨架笔段一分为二。图7中的局部区域d不存在拐点,均为骨架笔段内部点。经过上述两步处理,得到所有的待处理骨架笔段列表。如图8所示,图8显示了对图6处理后的最终结果。其中,阴影圆点表示骨架笔段的所有端点,相邻两个阴影圆点及中间的白色线条部分表示一个骨架笔段。
五、对不同类型的骨架笔段进行消歧处理:
由步骤四得到的骨架笔段与标准字库中的标准字笔段并不一致,这是因为骨架笔段存在如下两个问题:(1)步骤三中的细化操作会使得骨架笔段在笔画相交、转折、交搭处存在畸变;(2)骨架笔段在笔画相接处被过度分割。这两个问题导致骨架笔段过于细碎,无法与标准字笔段建立联系。因此需要进一步消除骨架笔段中的畸变。本步骤对步骤四的输出结果进行处理,具体包括:先对所有骨架笔段进行分类;对每一种类型的骨架笔段,设计处理规则,消除畸变。本步骤的最终目的是,在保证不改变汉字骨架有效信息的前提下,消除骨架笔段中的所有畸变,得到与标准字笔段一致的笔段列表。
i、对上述骨架笔段进行分类包括如下:
本步骤将所有骨架笔段划分为三种类型:毛刺类型、内部短笔段类型、长笔段类型。归类方法如图9所示,图9是一个总体步骤流程图,包含3个模块,其中,“毛刺判断模块”的详细处理算法如图10;“内部段笔段判断模块”的详细处理算法如图11所示。归类方法的具体步骤如下:遍历骨架笔段列表;对于某个待定骨架笔段s来讲,如果它的邻接属性为(0,2)或(2,0),那么将其输入到“毛刺判断模块”;如果它的邻接属性为(2,2),那么将其输入到“内部短笔段判断模块”;如果它的邻接关系为其他情况,那么将其直接标记为“长笔段类型”,其他情况包括:(0,1)(1,0),(0,0)(1,1)(2,1)(1,2)。图9中的“毛刺判断模块”,用于确定骨架笔段s(也指前文中的si只有一个待判断笔段的情况)是否为毛刺类型。其具体流程如图10所示。详细描述如下:如果s满足如下两个条件中的任意一个,那么将其标记为毛刺类型;否则将其标记为长笔段类型。
1)骨架笔段s的长度小于阈值w×α1(w为该汉字笔段平均宽度,α1为[0,1]之间的某个实数)
2)骨架笔段s的长度大于或等于阈值w×α1,但小于阈值w×β1(β1为[1.0,1.5]之间的某个实数);且s的宽度大于阈值w×γ1(γ1为大于1的某个实数)
图11给出了“毛刺判断模块”的识别结果举例。其中,虚线圆圈圈出的骨架笔段被标记为了“毛刺类型”。图9中的“内部短笔段判断模块”用于确定骨架笔段s是否为内部短笔段类型。其具体流程如图12所示。详细描述如下:若骨架笔段s满足如下条件中的任意一个,那么将其标记为内部短笔段类型;否则,将其标记为长笔段类型。
1)骨架笔段s的长度小于阈值w×α2(α2为[0,1]之间的某个实数);
2)骨架笔段s的长度大于或等于阈值w×α2,但小于阈值w×β2(β2为大于1的某个实数);且宽度大于阈值w×γ2(γ2为大于1的某个实数);
3)骨架笔段s与其相邻笔段满足三角形法则;
对于图12中判断是否满足“三角形法则”操作,具体处理方法如下:
1)对于待处理骨架笔段s,假设它的路径长度为ls。
2)从s的一个端点p出发,对相邻骨架笔段进行深度遍历,找到所有与p点的路径距离为ls的点集
3)从s的另一个端点q出发,对相邻骨架笔段进行深度遍历,找到所有与q点的路径距离为ls的点集
4)遍历如下三角形:
下面结合图对上述三角形法则进行举例说明,如图13所示,待处理骨架笔段s的端点为p、q,长度为ls;距离p点的路径长度为ls的点集为{e1,e2};距离q点的路径长度为ls的点集为{e3,e4,e5}。需要遍历的所有三角形为δpqe1(如图14所示)、δpqe2(如图15所示)、δpqe3(如图16所示)、δpqe4(如图17所示)、δpqe5(如图18所示)。图19给出了“内部短笔段判断模块”的识别结果。其中,虚线圆圈圈出的骨架笔段被标记为了“内部短笔段类型”。
ii、对每一种类型的骨架笔段消除畸变包括:
下面先说明处理三种类型骨架笔段的总体思路:
由于上述步骤中“细化”操作存在如下局限性:骨架笔段在相互的邻接处,不能与原有字迹的中心线相吻合,而且偏差严重,使得最终的动态还原效果存在瑕疵,所以在删除“毛刺笔段”和“内部短笔段”之后,继续针对相邻笔段,将存在瑕疵的一小部分(这部分是使用阈值来控制的)也删除掉;然后使用图形学中的参数曲线(也就是hermit曲线)进行平滑连接。这样就保证了最终的骨架笔段是平滑的、也是与字迹中心线相吻合的。从而保证了逼真的动态还原效果。
(一)对于内部短笔段类型的处理
根据内部短笔段之间的邻接关系,对它们进行分组。分组规则如下:对于内部短笔段si来讲,遍历与其邻接的其他内部短笔段;如果经过一系列深度遍历之后,能够访问到内部短笔段sj,那么si和sj就属于同一组。g是指一组内部短笔段的集合,si和sj是这个集合中的元素。在这个集合中,所有的内部短笔段都是彼此相邻的,所以在g中,内部段笔段的数量可能是1、2、3等等。
对于某个分组g来讲,如果它的元素数量为1,那么处理方法如下:
(1)假设分组g中内部短笔段的长度为lg;假设所有与g相邻的其他骨架笔段集合为
对于某个分组g来讲,如果它的元素数量大于1,那么处理方法如下:
(1)假设所有与g相邻的骨架笔段集合为
(二)对于毛刺类型的处理
对于某个毛刺笔段s,假设它的端点为m、n,邻接属性为(2,0),长度为ls。另外,假设与s相邻的两个其他骨架笔段分别为
i、对于“笔画转折毛刺”s,采用如下步骤处理:
(1)如图23和24所示,对于每一个与s相邻的骨架笔段
ii、对于“笔画粘连毛刺”s,采用如下步骤处理:
(1)如图28所示,对于每一个与s相邻的骨架笔段
(三)对于长笔段类型的处理调整
定义:对于某个坐标点p,如果它同时是三个长笔段的端点,那么就将其称为“三叉点”。对于骨架笔段中的每一个三叉点,按照如下方式处理:(1)假设与三叉点h连接的长骨架笔段集合为
六、对消歧后的骨架笔段进行排序
步骤五得到的骨架笔段已经与标准字笔段数量一致,但顺序不同。本步骤的目的是,以标准字笔段的顺序为依据,对字帖图像的骨架笔段进行调整,从而得到正确顺序的骨架笔段。具体操作包括:首先,将步骤五得到的骨架笔段与标准汉字库中对应汉字的标准笔段进行匹配;然后,根据标准笔段的顺序,对骨架笔段的顺序、以及每个骨架笔段内部的采样点顺序进行调整,得到按照书写规律排列的骨架笔段列表。
七、汉字字帖图像的动态还原
以步骤六的结果为基础,本步骤将原始的字帖汉字图像以动画的形式显示出来,汉字书写过程的动态还原具体包括以下步骤:(1)准备一张与原始字帖图像尺寸相同的空白图像;(2)以排序后的骨架笔段为基础,遍历骨架笔段的每一个像素点;(3)对于某一个骨架像素点a来讲,计算它的笔迹半径wa;(4)以a为圆心、wa为半径在空白图像上生成一个圆形;将原始字帖图像中该圆形区域内的像素值拷贝到空白图像中。按照上述步骤,就可以实现汉字字帖图像的动态书写效果了。具体效果如图34所示。
下面结合具体字例“宋”,对本发明的实施方式作详细描述。
一、准备标准字库
标准字库中存储了所有汉字的字形信息。每个标准汉字的字形信息包含部件、笔画和标准字笔段。图35给出了标准字“宋”的字形信息。这个字包含两个部件,七个笔画,八个标准字笔段。第一个部件包含三个笔画,第二个部件包含四个笔画。其中第三个笔画包含两个标准字笔段,其他笔画均包含一个笔段。每个标准字笔段中存储了一系列的采样点,这些采样点数据如图36所示。其中,圆点表示采样点,黑线表示书写过程,数字为笔段序号。
为了得到上述标准字库,本发明实施例以黑体truetype字形为基础,通过手工描绘的方式,获取汉字的所有笔画、笔段;然后,通过手工标注方式,对标准字进行部件、笔段顺序等信息的标注。通过上述方法,本发明实施例得到了3027个标准汉字的字形信息。
二、采集字帖汉字图像
本方法利用扫描仪将不同作者不同字体字帖中的汉字转换为静态图像,比如,字帖汉字“宋”的采集结果如图37所示。
三、图像预处理
如图38所示,本步骤对字帖汉字图像进行灰度化和二值化操作,将字帖汉字图片转换成为二值图像。其中,在本实施方式中,灰度化操作采用加权平均灰度法;二值化操作采用otsu算法。针对上述二值图像,本实施方式采用模板法对汉字边缘进行平滑处理。具体方式如下:图39中的左图是填补像素的模板。使用该模板遍历二值图像,当二值图像中的某个区域与模板吻合时,则将中心像素置为前景像素;图39中的右图是去除像素的模板。使用该模板遍历二值图像,当二值图像的某个区域与模板吻合时,则将中心像素置为背景像素。需要注意:在遍历过程中,这两个模板均可进行90°、180°、270°的顺时针旋转。图40是预处理后的结果。
四、图像细化处理
本实施方式采用rosenfeld算法进行二值图像的细化。rosenfeld算法实现简单且效率高;同时可以保证细化结果在八邻域上的连通性,避免笔画断裂问题。字帖汉字图像经rosenfeld算法细化之后得到了一个汉字骨架,本发明实施例将骨架存储为点序列:p={p1,p2,…,pn}。细化结果如图41所示。
五、骨架笔段提取
遍历骨架点序列p,计算p中每一个像素点在8联通区域内的邻接点个数。将邻接点(邻接点是指一个像素点与哪些其他像素点相邻)个数不为2的像素点作为初次划分骨架笔段的端点,端点之间的彼此相邻的像素点作为骨架笔段内部点。这样,获得初步的笔段列表l={l1,l2,…}。对于每个骨架笔段li,本实施方式采用动射线算法(黄襄念,程萍,杨波,等.自然手写汉字预处理子系统[j].重庆大学学报,2000,23(4):33-37)计算出该笔段的拐点t={t1,t2,…}。将t作为分割点进一步分割li。这样,可以得到最终的骨架笔段集合s。此时,s中的笔段全部为简单笔段,方便后续的处理和调整。如图42所示,阴影圆点表示骨架笔段的所有端点,相邻两个阴影圆点及中间的白色线条表示一个骨架笔段。
六、骨架笔段消歧处理
本步骤对骨架笔段进行消歧处理,具体操作如下。
a.笔画平均宽度的计算:遍历骨架笔段列表,计算每个骨架笔段的长度。本实施方式选择长度最大的三个骨架笔段。计算这三个骨架笔段中点位置处的宽度,并将它们的均值作为整个汉字的笔画平均宽度w。
b.骨架笔段类型的识别:根据本发明的技术方案,将骨架笔段进行分类。“宋”字图像的笔段分类结果如图43所示。其中,虚线圆圈圈出的骨架笔段分组g,为内部短笔段类型;m1n1和m2n2指出的笔段为毛刺类型;其余骨架笔段均为长笔段类型;点h为三个长笔段形成的三叉点。
c.骨架笔段的消歧处理:根据本发明的技术方案,对“宋”字的骨架笔段进行消歧处理。具体顺序是:首先处理内部短笔段类型,然后处理毛刺类型,最后处理长笔段类型。
(a)内部短笔段的处理
在图43中,“宋”字包含一个内部短笔段分组g,且g中的短笔段数量大于1。为了说明方便,本发明实施例将其放大为图44。另外,将与g相邻的骨架笔段集合记为
1)对于每一个骨架笔段
2)对于sg中的所有骨架笔段,将靠近g一端的端点记为
i.对于两个骨架笔段
ii.对于两个骨架笔段
3)根据上述判定规则可知,图44中的
4)将骨架笔段
“宋”字内部短笔段组处理前后的结果对比如图45所示。
(b)毛刺类型的处理
在图43中,毛刺笔段为m1n1和m2n2。根据发明方案的描述可知,m1n1为笔画粘连毛刺,m2n2为笔画转折毛刺。如图46所示,对毛刺笔段m1n1进行处理的步骤如下:
1)将毛刺笔段m1n1的长度记为lm1n1。与m1n1相邻的骨架笔段记为
2)对于每个骨架笔段
3)将毛刺笔段m1n1延长,得到与笔画外边界相距0.5×w的点c;
4)计算ac和
5)将
如图47所示,对毛刺笔段m2n2的处理步骤如下:
1)将毛刺m2n2延长至笔画外边界,计算其长度为lm2n2。假设与m2n2相邻的骨架笔段为
2)对于每一个骨架笔段
3)在延长的毛刺笔段上,找到与笔画外边界相距0.5×w的点c;
4)利用hermit曲线将点a、c连接,并与笔段
图48是毛刺笔段在处理前后的结果对比。
(c)长笔段类型的处理
在图43中,存在由三个长笔段相邻形成的三叉点h。将其放大后,如图49所示。这里将与三叉点h邻接的骨架笔段记为
1)对于每一个骨架笔段
2)计算
3)将剩余笔段(这里为
图50是“宋”字长笔段类型处理前后结果对比图。
至此,完成了对“宋”字中所有骨架笔段的消歧处理。
七、骨架笔段的排序
如图50右图所示,经过消歧处理后得到的骨架笔段,是“宋”字最终的、无歧义的骨架笔段。这些骨架笔段与标准字库中“宋”字的标准笔段存在一一对应关系。在这里,本实施方式选择松弛匹配算法(chengfh,hsuwh,kuomc.recognitionofhandprintedchinesecharactersviastrokerelaxation[j].patternrecognition,1993,26(4):579-593)实现对骨架笔段和标准字笔段的匹配。然后,根据匹配结果对骨架笔段及笔段内的点序列进行重新排序,最终得到按照书写顺序排列的汉字骨架笔段序列。
八、动态还原
匹配排序结束后,本发明实施例就得到了按正确书写顺序排列的“宋”字骨架笔段。每个笔段中的点序列,也是按照正确书写顺序由起始位置至终止位置排列的。按照本发明技术方案中的内容,便可完成对“宋”字书写过程的动态还原。
本发明实施例还提供了一种内部短笔段的处理装置,该装置可以通过获取单元22、确定单元24、计算单元26、处理单元28实现其功能。需要说明的是,本发明实施例的一种内部短笔段的处理装置可以用于执行本发明实施例所提供的一种内部短笔段的处理方法,本发明实施例的一种内部短笔段的处理方法也可以通过本发明实施例所提供的一种内部短笔段的处理装置来执行。图2是根据本发明实施例的一种内部短笔段的处理装置的示意图。如图2所示,一种内部短笔段的处理装置包括:
第一删除模块22,用于在判断汉字的骨架笔段为内部短笔段的情况下,删除所述内部短笔段,其中,所述内部短笔段是其笔段两端各自有两个邻接笔段的骨架笔段;
第二删除模块24,用于将与所述内部短笔段相邻的骨架笔段删除预定长度的骨架笔段得到部分相邻笔段,其中,所述预定长度的骨架笔段是在所述内部短笔段的预定阈值范围内的部分骨架笔段;
构建模块26,用于将所述部分相邻笔段进行平滑连接组成新的骨架笔段,其中,所述新的骨架笔段与汉字二值图像的中心线相吻合的。
本发明实施例提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述方法。
本发明实施例提供了一种处理器,处理器包括处理的程序,其中,在程序运行时控制处理器所在设备执行上述方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。