字符笔画拆分方法和装置与流程

专利2022-06-29  74


本申请涉及计算机技术领域,尤其涉及一种字符笔画拆分方法和装置。



背景技术:

虽然字符结构复杂多变,但对于确定的字符,该字符中笔画之间的位置关系是不变的。若能够从字符的字形轮廓曲线中将字符的笔画准确确定出来,对于字符识别、笔画拆分和字符正确性检查具有重要的意义。

现有的字符笔画拆分方法主要可分为两类,一类是基于图像确定字符中的笔画,另一类是基于字形轮廓确定字符中的笔画。但上述字符笔画拆分方法的准确度不高。



技术实现要素:

本申请实施例提供一种字符笔画拆分方法和装置,可以提高字符笔画拆分的准确度。

第一方面,本申请提供了一种字符笔画拆分方法,包括:获取待拆分字符和参考字符;获取曲线段组,曲线段组包括组成待拆分字符同一笔画的曲线段;对待拆分字符和参考字符进行离散化,得到待拆分字符的第一离散点的点集和参考字符的第二离散点的点集;获取第一离散点的点集和第二离散点的点集之间的对应关系,对应关系表征与每个第一离散点的相似度最大的第二离散点;根据曲线段组、对应关系和参考字符,拆分待拆分字符所包括的笔画。

可选的,还包括:获取多个曲线段对,曲线段对所包括的一对曲线段为待拆分字符同一笔画中的部分或全部曲线段;从待拆分字符的轮廓曲线上的多个端点中确定同一笔画的曲线段的连接点,端点为曲线段的端点;根据同一笔画的曲线段的连接点和多个曲线段对,获取曲线段组。

可选的,从待拆分字符的轮廓曲线上的所有端点中确定同一笔画的曲线段的连接点,包括:对于待拆分字符的轮廓曲线上的任一曲线段的任一端点:若该端点所在的两条曲线段的夹角小于第一预设值,则确定该端点为关键点;从所有关键点中确定同一笔画的曲线段的连接点。

可选的,从所有关键点中确定同一笔画的曲线段的连接点,包括:对于任一关键点,若该关键点所在的两条曲线段的其它端点与该关键点围成的三角形区域不属于轮廓曲线围成的区域的一部分,则确定该关键点为分叉点;从所有分叉点中确定同一笔画的曲线段的连接点。

可选的,从所有分叉点中确定同一笔画的曲线段的连接点,包括:对于任意的第一分叉点和第二分叉点,若第一向量和第二向量的夹角小于第二预设值,且第一分叉点和第二分叉点组成的线段上的其它点均位于轮廓曲线围成的区域的内部,则确定第一分叉点和第二分叉点为第一笔画所对应的曲线段的连接点;其中,第一向量为第一分叉点作为终点所在曲线的曲线向量,第二向量为第二分叉点作为起点所在曲线的曲线向量。

可选的,根据同一笔画的曲线段的连接点和多个曲线段对,获取曲线段组,包括:在第一分叉点和第二分叉点为第一笔画所对应的曲线段的连接点的情况下,确定第一曲线段所属的曲线段对和第二曲线段所属的曲线段对中的曲线段属于同一个曲线段组;其中,第一曲线段为第一分叉点所在的曲线段,第二曲线段为第二分叉点所在的曲线段。

可选的,根据对应关系和参考字符,确定曲线段组中的各曲线段所属于的笔画,包括:对于待拆分字符的每一个曲线段组:根据对应关系,获取第二离散点的点集中与曲线段组的各第一离散点所对应的第二离散点;确定参考字符中包括曲线段组的各第一离散点所对应的第二离散点最多的笔画为曲线段组中的各曲线段所属于的笔画。

可选的,获取第一离散点的点集和第二离散点的点集之间的对应关系,包括:对于每个第一离散点:从第二离散点的点集中确定所有目标离散点,第一离散点的方向与目标离散点的方向的相似度大于第一预设相似度;获取第一离散点与各目标离散点之间的相似度;确定与第一离散点的相似度最大的目标离散点为第一离散点对应的第二离散点。

可选的,获取第一离散点与各目标离散点之间的相似度,包括:对于每个目标离散点:获取第一离散点与目标离散点之间的第一位置相似度;获取第一离散点的方向与目标离散点的方向的第一方向相似度;获取第一离散点与目标离散点之间的第二位置相似度;根据第一位置相似度、第一方向相似度和第二位置相似度,得到第一离散点与目标离散点之间的相似度。

第二方面,本申请提供一种字符笔画拆分装置,包括:

第一获取模块,用于获取待拆分字符和参考字符;

第二获取模块,获取曲线段组,曲线段组包括组成待拆分字符同一笔画的曲线段;

处理模块,用于对待拆分字符和参考字符进行离散化,得到待拆分字符的第一离散点的点集和参考字符的第二离散点的点集;

第三获取模块,用于获取第一离散点的点集和第二离散点的点集之间的对应关系,对应关系表征与每个第一离散点的相似度最大的第二离散点;

确定模块,用于根据曲线段组、对应关系和参考字符,拆分待拆分字符所包括的笔画。

第三方面,本申请提供一种字符笔画拆分设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面或第一方面的可选方式所述的字符笔画拆分方法。

第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面或第一方面的可选方式所述的字符笔画拆分方法。

本申请提供了一种字符笔画拆分方法和装置,通过获取待拆分字符和参考字符;获取包括组成待拆分字符同一笔画的曲线段的曲线段组;对待拆分字符和参考字符进行离散化,得到待拆分字符的第一离散点的点集和参考字符的第二离散点的点集;获取第一离散点的点集和第二离散点的点集之间的对应关系,即获取与每个第一离散点的相似度最大的第二离散点;根据曲线段组、对应关系和参考字符,拆分待拆分字符所包括的笔画,能够提高笔画拆分的准确性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请一实施例提供的字符笔画拆分方法的流程图一;

图2为本申请一实施例提供的待拆分字符示意图;

图3为本申请一实施例提供的待拆分字符轮廓曲线及待拆分字符轮廓曲线方向示意图;

图4为本申请一实施例提供的参考字符示意图;

图5为本申请一实施例提供的曲线段及连接点示意图;

图6为本申请一实施例提供的关键点示意图;

图7为本申请一实施例提供的字符笔画拆分方法的流程图二;

图8为本申请一实施例提供的字符笔画拆分方法的流程图三;

图9为本申请一实施例提供的字符笔画拆分装置的结构示意图;

图10为本申请一实施例提供的字符笔画拆分设备的结构示意图。

具体实施方式

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

通过手写体定制个人字库、判断字符正确性等,都需要正确的拆分字符的笔画。现有的基于字形轮廓的字符笔画拆分方法主要是利用形状上下文(shapecontext)和点集配准(coherentpointdrift,cpd)离散点匹配的方法,该方法只能够找到一个大致的位置,并且没有考虑离散点的方向,不能够将参考字符的笔画和待拆分字符的笔画准确的对应起来,字符笔画拆分的准确度不高。

本申请的主旨思想是:通过对待拆分字符和参考字符进行离散化,得到待拆分字符的第一离散点的点集和参考字符的第二离散点的点集,获取第一离散点的点集和第二离散点的点集之间的对应关系,根据该对应关系和参考字符,拆分待拆分字符所包括的笔画。

下面结合具体地实施例对本申请所涉及的字字符笔画拆分方法进行说明。

图1为本申请一实施例提供的字符笔画拆分方法的流程图一,本申请实施例的执行主体可为字符笔画拆分装置,该装置可为服务器的部分或全部;也可以是终端设备的部分或者全部。如图1所示,本实施例的方法可以包括:

步骤s101、获取待拆分字符和参考字符。

其中,待拆分字符为待拆分笔画的字符。获取待拆分字符包括:接收待拆分字符,获取待拆分字符的轮廓曲线,字形轮廓曲线是由多个不同的封闭轮廓构成的。轮廓曲线可以包括贝塞尔(bezier)曲线和直线段。

接收待拆分字符可包括:字符笔画拆分装置获取手写板上的待拆分字符或者通过扫描仪扫描待拆分字符。待拆分字符可如图2所示,待拆分字符的轮廓曲线方向可如图3所示,其中,图3中被椭圆形选框框出来的一段即为待拆分字符的轮廓曲线所包括的一个曲线段。

获取参考字符包括:获取笔画已知的参考字符,在本申请实施例中,参考字符所包括的笔画可称为参考笔画。为提高待拆分字符笔画拆分的效率和准确性,参考字符可为与待拆分字符轮廓相似或相同且字符轮廓清晰的字符,例如楷体字符。参考字符可如图4所示。其中,参考字符可以是用户输入的,也可以是事先存储在字符笔画拆分装置中的,还可以从网络数据库中获取的,还可以是移动存储设备中获取的。

步骤s102、获取曲线段组,每个曲线段组包括组成待拆分字符同一笔画的曲线段。

由于待拆分字符的轮廓曲线由多条曲线段组成,因此待拆分字符的任意一个笔画包含至少一个曲线段,组成同一笔画的曲线段属于同一个曲线段组。

获取曲线段组可能是获取一个曲线段组,也可能是获取多个曲线段组。例如,字符“一”,包括一个笔画,字符笔画拆分装置能够获取到一个曲线段组;字符“二”,包括两个笔画,字符笔画拆分装置能够获取到两个曲线段组。

其中,获取曲线段组,每个曲线段组包括组成待拆分字符同一笔画的曲线段,可通过如下的a1~a3实现:

a1、获取多个曲线段对,曲线段对所包括的一对曲线段为待拆分字符同一笔画中的部分或全部曲线段。

由于构成待拆分字符的每一个笔画均具有一定的宽度,因而,同一笔画会包括多个曲线段。

本申请中的曲线段对为近似平行、方向相反、相互对称且距离最近的两条构成待拆分字符的轮廓曲线的曲线段。图5为本申请一实施例提供的曲线段及连接点示意图,其中,图5中的曲线段51和曲线段52组成一个曲线段对,图5中的曲线段53和曲线段54组成一个曲线段对,图5中的曲线段53和曲线段55组成一个曲线段对。

对于两条曲线段近似平行的判断方法,在一种可能的实现方式中:获取两条曲线段中的第一曲线段的起始点指向终点的第三向量与该两条曲线段中的第二曲线段的起始点指向终点的第四向量之间的夹角,若第三向量与第四向量之间的夹角小于预设夹角,则确定该两条曲线近似平行。其中,预设夹角可以根据实际情况设定,例如可以是15o。在另一种可能的实现方式中:获取两条曲线段中的第一曲线段的端点所在的第一直线与该两条曲线段中的第二曲线段的端点所在的第二直线的夹角,若第一直线与第二直线之间的夹角小于预设夹角,则确定该两条曲线近似平行。

对于两条曲线段相互对称的判断方法,在一种可能的实现方式中:将该两条曲线段中的第一曲线段投影到该两条曲线段中的第二曲线段上,得到第一曲线段的投影,若第一曲线段的投影为第二曲线段的部分或全部,则确定该两个曲线相互对称。

a2、从待拆分字符的轮廓曲线上的所有端点中确定同一笔画的曲线段的连接点。端点为待拆分字符的轮廓曲线包括的各曲线段的端点。

字符中不同笔画之间会存在相交的位置关系,即一个笔画被另一个笔画切割形成断点,该断点即为连接点。继续参见图5,待拆分字符的横笔画被撇笔画和捺笔画切割形成6个断点,即6个连接点:a、b、c、d、e、f,该6个连接点分别为曲线段51的一个端点,曲线段52的一个端点,曲线段53的一个端点,曲线段54的两个端点,曲线段55的一个端点。

从待拆分字符的轮廓曲线上的所有端点中确定同一笔画的曲线段的连接点可通过如下的b1~b2实现:

b1、对于待拆分字符的轮廓曲线上的任一曲线段的任一第一端点:若第一端点所在的两条曲线段的夹角小于第一预设值,则确定第一端端点为关键点。其中,两条曲线段可以是该第一端点作为终点的曲线和该第一端点作为起点的曲线。

b2、从所有关键点中确定同一笔画的曲线段的连接点。

其中,从所有关键点中确定同一笔画的曲线段的连接点,可通过如下的b21~b22实现:

b21、对于任一关键点,若该关键点所在的两条曲线段的其它端点与该关键点围成的三角形区域不属于待拆分字符的轮廓曲线围成的区域的一部分,则确定该关键点为分叉点。

示例性地,图6为本申请一实施例提供的关键点示意图,参见图6,若图6中的a点为某一关键点,则b点和c点为关键点a所在的两条曲线段的其它端点,a点、b点和c点围成的三角形区域为待拆分字符的轮廓曲线围成的区域的外部,所以a点为分叉点。若图6中的b点为第一关键点,则a点和d点为第一关键点所在的两条曲线段的其它端点,a点、b点和d点围成的三角形区域为待拆分字符的轮廓曲线围成的区域的一部分,所以b点不是分叉点。

b22、从所有分叉点中确定同一笔画的曲线段的连接点。

其中,从所有分叉点中确定同一笔画的曲线段的连接点包括:对于任意的第一分叉点和第二分叉点,若第一向量和第二向量的夹角小于第二预设值,且第一分叉点和第二分叉点组成的线段上的其它点均位于待拆分字符的轮廓曲线围成的区域的内部,则确定第一分叉点和第二分叉点为第一笔画所对应的曲线段的连接点。其中,第一向量为第一分叉点作为终点所在曲线的曲线向量,第二向量为第二分叉点作为起点所在曲线的曲线向量。

a3、根据同一笔画的曲线段的连接点和多个曲线段对,获取曲线段组。

在第一分叉点和第二分叉点为同一笔画所对应的曲线段的连接点的情况下,确定第一曲线段所属的曲线段对和第二曲线段所属的曲线段对中的曲线段属于同一个曲线段组;其中,第一曲线段为第一分叉点所在的曲线段,第二曲线段为第二分叉点所在的曲线段。

继续参见图5,在第一分叉点为a,第二分叉点为b,第一向量为第一分叉点a作为终点所在曲线的曲线向量即点g指向点a的向量,第二向量为第二分叉点b作为起点所在曲线的曲线向量,即点b指向点c的向量的情况相爱,可知第一向量和第二向量的夹角小于第二预设值,且a点和b点组成的线段上的其它点均位于待拆分字符的轮廓曲线围成的区域的内部,因此,第一分叉点a和第二分叉点b为同一笔画的连接点,a点所在的第一曲线段所属于的曲线段对(包括曲线段51和52)以及b点所在的第二曲线段所属于的曲线段对(包括曲线段53和54)属于同一曲线段组。可以理解的是,基于同样的方法,在第一分叉点为c、第二分叉点为d时,可判断曲线段53、54和55属于同一曲线段组,最终得到曲线段51、52、53、54和55为同一曲线段组。

步骤s103、对待拆分字符和参考字符进行离散化,得到待拆分字符的第一离散点的点集和参考字符的第二离散点的点集。

在字符笔画拆分装置对待拆分字符和参考字符进行离散化时,可以以相同的步长对待拆分字符的轮廓曲线和参考字符的轮廓曲线进行均匀离散化。可选地,对待拆分字符进行离散化得到的第一离散点的点集与对参考字符进行离散化得到的第二离散点的点集的数量可相同也可不相同。

例如,待拆分字符轮廓曲线总长为1000mm,以10mm为步进,对待拆分字符进行均匀离散化,可以得到100个第一离散点;参考字符轮廓曲线总长为1100mm,以10mm为步进,对参考字符进行均匀离散化,可以得到110个第二离散点。

步骤s104、获取第一离散点的点集和第二离散点的点集之间的对应关系。

其中,对应关系表征与每个第一离散点的相似度最大的第二离散点,也就是一个第一离散点对应一个第二离散点。字符笔画拆分装置获取第一离散点的点集和第二离散点的点集之间的对应关系,即字符笔画拆分装置获取参考字符的第二离散点中,与待拆分字符的每个第一离散点相似度最大的第二离散点。其中,获取与第一离散点的相似度最大的第二离散点的具体实现方法可参见后续实施例的阐述。

步骤s105、根据曲线段组、第一离散点的点集和第二离散点的点集之间的对应关系和参考字符,拆分待拆分字符所包括的笔画。

拆分待拆分字符所包括的笔画可以是识别出待拆分字符所包括的笔画,也可以是将待拆分字符所包括的笔画拆解出来。

在一种方式中,根据曲线段组、第一离散点的点集和第二离散点的点集之间的对应关系和参考字符,拆分待拆分字符所包括的笔画可通过c1~c2实现:

对于待拆分字符的每一个曲线段组:

c1、根据该对应关系,获取第二离散点的点集中与该曲线段组的各第一离散点所对应的预选离散点。即预选离散点为第二离散点中与该曲线段组的各第一离散点所对应的离散点。

c2、确定参考字符中包括预选离散点最多的笔画为所述曲线段组中的各曲线段所属于的笔画。

示例性地,对于待拆分字符的曲线段组a,根据该对应关系,获取参考字符的第二离散点的点集中与曲线段组a的各第一离散点所对应的预选离散点;若预选离散点的数量为12个,参考字符的笔画b包括10个预选离散点,参考字符的笔画c包括2个预选离散点,则确定参考字符的笔画b为曲线段组a中的各曲线段所属于的笔画。

本申请通过获取待拆分字符和参考字符以及获取所有包括组成待拆分字符同一笔画的曲线段;并通过对待拆分字符和参考字符进行离散化,得到待拆分字符的第一离散点的点集和参考字符的第二离散点的点集;获取第一离散点的点集和第二离散点的点集之间的对应关系,即获取每个第一离散点的相似度最大的第二离散点;并根据曲线段组、对应关系和参考字符,拆分待拆分字符所包括的笔画,提高了字符笔画拆分的准确性。

下面采用实施例对上述步骤s103涉及的获取第一离散点的点集和第二离散点的点集之间的对应关系的方法进行详细说明。

首先,对图1所示的实施例中的步骤s103“获取第一离散点的点集和第二离散点的点集之间的对应关系”的一种具体实现进行说明。图7为本申请一实施例提供的字符笔画拆分方法的流程图二。本实施例中以获取与第一离散点的点集中的任一第一离散点对应的第二离散点为例进行说明。参见图7,本实施例的方法包括:

步骤s701:从第二离散点的点集中确定所有目标离散点。

可知,目标离散点为第二离散点的点集中方向与该第一离散点的方向的相似度大于第一预设相似度的第二离散点。预设相似度可以根据实际情况设置,本申请对此不作限制。

在一种具体的实现中,可通过如下的方法获取第一离散点与各第二离散点之间的方向相似度:对于每个第二离散点,根据该第二离散点的方向向量和第一离散点的方向向量,确定第一离散点与该第二离散点之间的方向相似度。

例如,可以根据公式(1)计算第一离散点i与第二离散点j之间的方向相似度。

其中,(xi,yi)表示第一离散点i的方向向量,(xj,yj)表示第二离散点j的方向向量。d2的值越大则第一离散点与第二离散点在字符中的方向相似度越大,d2的值越小则第一离散点与第二离散点在字符中的方向相似度越小。

在得到第一离散点与各第二离散点之间的方向相似度后,将与第一离散点的方向相似度大于第一预设相似度的第二离散点确定为目标离散点。

步骤s702:获取第一离散点与各目标离散点之间的相似度。

下面以一个目标离散点为例,说明第一离散点与各目标离散点之间的相似度的获取方法。获取第一离散点与各目标离散点之间的相似度可通过d1~d3实现:

d1、获取第一离散点与目标离散点之间的第一位置相似度。

以第一离散点i为极坐标中心,将待拆分字符所在平面作为一个极坐标系,从极角方向平均分为a份,极径方向分为b份,整个待拆分字符所在平面被划分为n个区域,其中n=a×b。获取每个区域中的第一离散点的个数,得到待拆分字符的第一离散点i的特征序列h=(hi1,hi2,hi3,…,hin,…,hin),其中hin表示以待拆分字符中离散点i为极坐标中心,整个待拆分字符的轮廓曲线上的第一离散点落在第n区域内的第一离散点的个数,其中,n=1,2……n。

同样地,以目标离散点k为极坐标中心,将参考字符所在平面作为一个极坐标系,从极角方向平均分为a份,极径方向分为b份,整个待拆分字符所在平面被划分为n个区域。其中n=a×b。获取每个区域中的第二离散点的个数,得到待参考字符的目标离散点k的特征序列g=(gk1,gk2,gk3,…,gkn,…,gkn)。其中,gkn表示以参考字符中第二离散点k为极坐标中心,整个参考字符的轮廓曲线上的第二离散点落在第n区域内的第二离散点的个数,其中n=1,2……n。

根据待拆分字符的第一离散点i的特征序列h和目标离散点k的特征序列g得到第一离散点i与目标离散点k的第一位置相似度。

例如,可以根据公式(2)计算第一离散点i与目标离散点k的第一位置相似度。

d1的值越大则表示第一离散点i与目标离散点k的第一位置的相似度越低,d1的值越小则表示第一离散点i与目标离散点k的第一位置的相似度越高。

d2、获取第一离散点与目标离散点的方向相似度。

在一种方式中,第一离散点与目标离散点的方向相似度可以是从存储器中获取的,存储器中存储有步骤s701中计算得到的第一离散点与各第二离散点之间的方向相似度。

在另一种方式中,可参照步骤s701中获取方向相似度的方法,获取第一离散点与目标离散点的方向相似度。

d3、获取第一离散点与目标离散点之间的第二位置相似度。

以第一离散点i为极坐标中心,将字符所在平面作为一个极坐标系,从极角方向平均分为a份,极径方向分为b份,整个空间被划分为n个区域,其中n=a×b。获取每个区域中的第一类离散点的个数,得到待拆分字符的第一离散点i的特征序列z=(zi1,zi2,zi3,…,zin,…,zin),其中zin表示以待拆分字符中离散点i为极坐标中心,第n区域内第一类离散点的个数;第一类离散点为第一离散点的点集中与第一离散点i的方向相似度大于第二预设相似度的离散点,其中,n=1,2……n。

以目标离散点k为极坐标中心,将参考字符所在平面作为一个极坐标系,从极角方向平均分为a份,极径方向分为b份,整个待拆分字符所在平面被划分为n个区域,其中n=a×b。获取每个区域中的第二类离散点的个数,得到参考字符的目标离散点k的特征序列f=(fk1,fk2,fk3,…,fkn,…,fkn),其中fkn表示以参考字符中目标离散点k为极坐标中心,第n区域内第二类离散点的个数;第二类离散点为第二离散点的点集中与目标离散点k的方向相似度大于第三预设相似度的离散点,其中,n=1,2……n。

根据待拆分字符的第一离散点i的特征序列z=(zi1,zi2,zi3,…,zin,…,zin)和参考字符的目标离散点k的特征序列f=(fk1,fk2,fk3,…,fkn,…,fkn)得到第一离散点i与目标离散点k的第二距离相似度。

例如,字符笔画拆分装置可以根据公式(3)计算第一离散点i与目标离散点k的第二距离相似度。

d3的值越大则表示第一离散点i与目标离散点k的第二位置的相似度越低,d3的值越小则表示第一离散点i与目标离散点k的第二位置的相似度越高。

d4、根据第一位置相似度、第一方向相似度和第二位置相似度,确定第一离散点与目标离散点之间的相似度。

具体的,可以通过公式(4)确定第一离散点与目标离散点之间的相似度。

d=d1 (1-d2) d3(4)

d的值越小则表示所述第一离散点与目标离散点的相似度越大。

步骤s703:将与第一离散点相似度最大的目标离散点确定为第一离散点对应的第二离散点。

本申请中,对于任一的第一离散点,从第二离散点的点集中获取第一离散点对应的所有目标离散点,目标离散点为第二离散点的点集中与第一离散点方向相近的离散点;获取所有目标离散点与该第一离散点相似度,确定与该第一离散点相似度最大的目标离散点为该第一离散点对应的第二离散点。而不需要获取该第一离散点与所有第二离散点的相似度,减少了计算量,进而提高了确定第一离散点和第二离散点对应关系的效率高。

其次,对图1所示的实施例中的步骤s103“获取第一离散点的点集和第二离散点的点集之间的对应关系”的另一种具体实现进行说明。图8为本申请一实施例提供的字符笔画拆分方法的流程图三。本实施例中以获取与第一离散点的点集中的任一第一离散点对应的第二离散点为例进行说明。参见图8,本实施例的方法包括:

步骤s801、获取第一离散点与各第二离散点之间的相似度。

下面以一个第二离散点为例,说明第一离散点与各第二离散点之间的相似度的获取方法。获取第一离散点与各第二离散点之间的相似度可通过e1~e3实现:

e1、获取第一离散点与第二离散点之间的第一位置相似度。

具体内容可参见d1中关于获取第一离散点与目标离散点之间的第一位置相似度的详细说明,在此不做赘述。

e2、获取第一离散点与第二离散点的方向相似度。

具体内容可参见d2中关于获取第一离散点的方向与目标离散点的方向的第一方向相似度的详细说明,在此不做赘述。

e3、获取第一离散点与第二离散点之间的第二位置相似度。

具体内容可参见d3中关于获取第一离散点与目标离散点之间的第二位置相似度的详细说明,在此不做赘述。

步骤s802、将与第一离散点相似度最大的目标离散点确定为第一离散点对应的第二离散点。

步骤s802与步骤s703相同,具体内容可参见步骤s703的详细说明,在此不做赘述。

本实施例给出了获取第一离散点与各第二离散点之间的相似度的方法。通过方法能够获取第一离散点与各第二离散点之间的相似度的方法并确定出与第一离散点对应的第二离散点。

图9为本申请一实施例提供的字符笔画拆分装置的结构示意图,如图9所示,本实施例的装置可以包括:

第一获取模块91,用于获取待拆分字符和参考字符。

第一获取模块92,用于获取曲线段组,所述曲线段组包括组成待拆分字符同一笔画的曲线段。

处理模块93,用于对待拆分字符和参考字符进行离散化,得到待拆分字符的第一离散点的点集和参考字符的第二离散点的点集。

第三获取模块94,用于获取第一离散点的点集和第二离散点的点集之间的对应关系,对应关系表征与每个第一离散点的相似度最大的第二离散点。

确定模块95,用于根据曲线段组、对应关系和参考字符,拆分待拆分字符所包括的笔画。

可选的,第一获取模块92,具体用于获取多个曲线段对,曲线段对所包括的一对曲线段为待拆分字符同一笔画中的部分或全部曲线段;从待拆分字符的轮廓曲线上的多个端点中确定同一笔画的曲线段的连接点,端点为曲线段的端点;根据同一笔画的曲线段的连接点和多个曲线段对,获取曲线段组。

可选的,第一获取模块92,还用于,对于待拆分字符的轮廓曲线上的任一曲线段的任一第一端点:若第一端点所在的两条曲线段的夹角小于第一预设值,则确定第一端端点为关键点;从所有关键点中确定同一笔画的曲线段的连接点。

可选的,第一获取模块92,还用于,对于任一第一关键点,若第一关键点所在的两条曲线段的其它端点与第一关键点围成的三角形区域不属于轮廓曲线围成的区域的一部分,则确定第一关键点为分叉点;从所有分叉点中确定同一笔画的曲线段的连接点。

可选的,第一获取模块92,还用于,对于任意的第一分叉点和第二分叉点,若第一向量和第二向量的夹角小于第二预设值,且第一分叉点和第二分叉点组成的线段上的其它点均位于轮廓曲线围成的区域的内部,则确定第一分叉点和第二分叉点为第一笔画所对应的曲线段的连接点;其中,第一向量为第一分叉点作为终点所在曲线的曲线向量,第二向量为第二分叉点作为起点所在曲线的曲线向量。

可选的,第一获取模块92,还用于,在第一分叉点和第二分叉点为第一笔画所对应的曲线段的连接点的情况下,确定第一曲线段所属的曲线段对和第二曲线段所属的曲线段对中的曲线段属于同一个曲线段组;其中,第一曲线段为第一分叉点所在的曲线段,第二曲线段为第二分叉点所在的曲线段。

可选的,确定模块95,具体用于,对于待拆分字符的每一个曲线段组:根据对应关系,获取第二离散点的点集中与曲线段组的各第一离散点所对应的第二离散点;确定参考字符中包括曲线段组的各第一离散点所对应的第二离散点最多的笔画为曲线段组中的各曲线段所属于的笔画。

可选的,确定模块95,还用于,对于每个第一离散点:从第二离散点的点集中确定所有目标离散点,第一离散点的方向与目标离散点的方向的相似度大于第一预设相似度;获取第一离散点与各目标离散点之间的相似度;确定与第一离散点的相似度最大的目标离散点为第一离散点对应的第二离散点。

可选的,确定模块95,还用于,获取第一离散点与各目标离散点之间的相似度,包括:对于每个目标离散点:获取第一离散点与目标离散点之间的第一位置相似度;获取第一离散点的方向与目标离散点的方向的第一方向相似度;获取第一离散点与目标离散点之间的第二位置相似度;根据第一位置相似度、第一方向相似度和第二位置相似度,得到第一离散点与目标离散点之间的相似度。

本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图10为本申请一实施例提供的字符笔画拆分设备的结构示意图,参见图10,本实施例的字符笔画拆分设备包括:存储器101、处理器102和通信总线103,通信总线103用于连接处理器102和存储器101,处理器102与存储器101耦合;

所述存储器101,用于存储计算机程序;

所述处理器102,用于调用所述存储器101中存储的计算机程序,以实现上述方法实施例中的方法。

其中,计算机程序还可存储在字符笔画拆分设备外部的存储器中。该字符笔画拆分设备可为服务器。

应理解,在本申请中,该处理器102可以是cpu,该处理器102还可以是其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。

该存储器101可以包括只读存储器和随机存取存储器,并向处理器102提供指令和数据。存储器101还可以包括非易失性随机存取存储器。例如,存储器101还可以存储设备类型的信息。

该存储器101可以是易失性存储器或非易失性存储器,或均可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledatadatesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步连接动态随机存取存储器(synchlinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。

该总线103除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线113。

本申请还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述字符笔画拆分方法。该计算机可读存储介质所存储的计算机执行指令被处理器执行时能实现上述字符笔画拆分方法,其内容和效果可参考方法实施例部分,对此不再赘述。

本申请还提供了一种计算机程序产品,包括:计算机指令,该计算机指令用于使计算机执行上述字符笔画拆分方法。该计算机指令使计算机能够执行上述字符笔画拆分方法,其内容和效果可参考方法实施例部分,对此不再赘述。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。


技术特征:

1.一种字符笔画拆分方法,其特征在于,包括:

获取待拆分字符和参考字符;

获取曲线段组,所述曲线段组包括组成待拆分字符同一笔画的曲线段;

对所述待拆分字符和所述参考字符进行离散化,得到所述待拆分字符的第一离散点的点集和所述参考字符的第二离散点的点集;

获取所述第一离散点的点集和所述第二离散点的点集之间的对应关系,所述对应关系表征与每个所述第一离散点相似度最大的第二离散点;

根据所述曲线段组、对应关系和所述参考字符,拆分所述待拆分字符所包括的笔画。

2.根据权利要求1所述的方法,其特征在于,所述获取曲线段组,包括:

获取多个曲线段对,所述曲线段对所包括的一对曲线段为所述待拆分字符同一笔画中的部分或全部曲线段;

从所述待拆分字符的轮廓曲线上的所有端点中确定同一笔画的曲线段的连接点,所述端点为所述曲线段的端点;

根据同一笔画的曲线段的连接点和所述多个曲线段对,获取曲线段组。

3.根据权利要求2所述的方法,其特征在于,所述从所述待拆分字符的轮廓曲线上的端点中确定同一笔画的曲线段的连接点,包括:

对于所述待拆分字符的轮廓曲线上的任一曲线段的任一端点:若所述端点所在的两条曲线段的夹角小于第一预设值,则确定所述端点为关键点;

从所有所述关键点中确定同一笔画的曲线段的连接点。

4.根据权利要求3所述的方法,其特征在于,所述从所有所述关键点中确定同一笔画的曲线段的连接点,包括:

对于任一关键点,若所述关键点所在的两条曲线段的其它端点与所述关键点围成的三角形区域不属于所述轮廓曲线围成的区域的一部分,则确定所述关键点为分叉点;

从所有所述分叉点中确定同一笔画的曲线段的连接点。

5.根据权利要求4所述的方法,其特征在于,所述从所有所述分叉点中确定同一笔画的曲线段的连接点,包括:

对于任意的第一分叉点和第二分叉点,若第一向量和第二向量的夹角小于第二预设值,且所述第一分叉点和所述第二分叉点组成的线段上的其它点均位于所述轮廓曲线围成的区域的内部,则确定所述第一分叉点和所述第二分叉点为同一笔画所对应的曲线段的连接点;

其中,所述第一向量为所述第一分叉点作为终点所在曲线的曲线向量,所述第二向量为第二分叉点作为起点所在曲线的曲线向量。

6.根据权利要求5所述的方法,其特征在于,所述根据同一笔画的曲线段的连接点和所述多个曲线段对,获取曲线段组,包括:

在所述第一分叉点和所述第二分叉点为同一笔画所对应的曲线段的连接点的情况下,确定第一曲线段所属的曲线段对和第二曲线段所属的曲线段对中的曲线段属于同一个曲线段组;

其中,所述第一曲线段为所述第一分叉点所在的曲线段,所述第二曲线段为所述第二分叉点所在的曲线段。

7.根据权利要求1所述的方法,其特征在于,所述根据所述对应关系和所述参考字符,确定所述曲线段组中的各曲线段所组成的笔画,包括:

对于待拆分字符的每一个曲线段组:

根据所述对应关系,获取所述第二离散点的点集中与所述曲线段组的各第一离散点所对应的第二离散点;

确定参考字符中包括所述曲线段组的各第一离散点所对应的第二离散点最多的笔画为所述曲线段组中的各曲线段所属于的笔画。

8.根据权利要求1或7所述的方法,其特征在于,所述获取所述第一离散点的点集和所述第二离散点的点集之间的对应关系,包括:

对于每个所述第一离散点:

从所述第二离散点的点集中确定所有目标离散点,所述第一离散点的方向与所述目标离散点的方向的相似度大于第一预设相似度;

获取所述第一离散点与各所述目标离散点之间的相似度;

确定与所述第一离散点的相似度最大的目标离散点为所述第一离散点对应的第二离散点。

9.根据权利要求8所述的方法,其特征在于,所述获取所述第一离散点与各所述目标离散点之间的相似度,包括:

对于每个目标离散点:

获取所述第一离散点与所述目标离散点之间的第一位置相似度;

获取所述第一离散点的方向与所述目标离散点的方向的第一方向相似度;

获取所述第一离散点与所述目标离散点之间的第二位置相似度;

根据所述第一位置相似度、所述第一方向相似度和所述第二位置相似度,得到所述第一离散点与所述目标离散点之间的相似度。

10.一种字符笔画拆分装置,其特征在于,包括:

第一获取模块,用于获取待拆分字符和参考字符;

第二获取模块,获取曲线段组,所述曲线段组包括组成待拆分字符同一笔画的曲线段;

处理模块,用于对所述待拆分字符和所述参考字符进行离散化,得到所述待拆分字符的第一离散点的点集和所述参考字符的第二离散点的点集;

第三获取模块,用于获取所述第一离散点的点集和所述第二离散点的点集之间的对应关系,所述对应关系表征与每个所述第一离散点的相似度最大的第二离散点;

确定模块,用于根据所述曲线段组、对应关系和所述参考字符,拆分所述待拆分字符所包括的笔画。

技术总结
本申请提供一种字符笔画拆分方法和装置。本申请字符笔画拆分方法包括:获取待拆分字符和参考字符;获取曲线段组,所述曲线段组包括组成待拆分字符同一笔画的曲线段;对所述待拆分字符和所述参考字符进行离散化,得到所述待拆分字符的第一离散点的点集和所述参考字符的第二离散点的点集;获取所述第一离散点的点集和所述第二离散点的点集之间的对应关系,所述对应关系表征与每个所述第一离散点相似度最大的第二离散点;根据所述曲线段组、对应关系和所述参考字符,拆分所述待拆分字符所包括的笔画。本申请提高了字符笔画拆分的准确性。

技术研发人员:郝龙杰
受保护的技术使用者:北大方正集团有限公司;北京北大方正电子有限公司
技术研发日:2020.01.07
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-54883.html

最新回复(0)