一种字符笔画提取方法、装置、电子设备和存储介质与流程

文档序号:29697533发布日期:2022-04-16 13:28阅读:94来源:国知局
一种字符笔画提取方法、装置、电子设备和存储介质与流程

1.本技术涉及计算机技术领域,特别是涉及一种字符笔画提取方法、装置、电子设备和存储介质。


背景技术:

2.目前,字形拆分方案通过对待拆分字符和参考字符进行离散化,得到待拆分字符的第一离散点的点集和参考字符的第二离散点的点集;获取第一离散点的点集和第二离散点的点集之间的对应关系,根据该对应关系和参考字符,拆分待拆分字符所包括的笔画。但是,第一离散点集与第二离散点集的对应关系是有一个阈值区间的,如果另一个字体的离散点集和第二离散点集差异远超过容忍阈值,这种对应关系就不成立了,所以现有的方案只能拆分字形相近的字体,并不能完美拆分不同字体的相同的字符。


技术实现要素:

3.本技术主要解决的技术问题是提供一种字符笔画提取方法、装置、电子设备和存储介质,能够提高字符笔画提取的速度和精确度。
4.为解决上述技术问题,本技术采用的一个技术方案是:提供一种字符笔画提取方法,该方法包括:获取待处理字符的字形曲线;对字形曲线进行离散采样,得到离散点集;从离散点集中选取至少两个笔画关键点,获取至少包含两个笔画关键点的封闭曲线,得到字符的笔画。
5.其中,从离散点集中选取至少两个笔画关键点,获取至少包含两个笔画关键点的封闭曲线,包括:从离散点集中选取第一笔画关键点和第二笔画关键点;搜索从第一笔画关键点到第二笔画关键点的最短路径,获取第一笔画曲线段,以及搜索从第二笔画关键点到第一笔画关键点的最短路径,获取第二笔画曲线段,得到笔画曲线;其中,笔画曲线为第一笔画曲线段与第二笔画曲线段形成的封闭曲线。
6.其中,笔画曲线段的获取步骤包括:利用a*寻路算法搜索第一笔画关键点与第二笔画关键点之间的笔画曲线段。
7.其中,笔画曲线段的获取步骤包括:判断第一笔画关键点与第二笔画关键点在字形曲线上是否连续;响应于第一笔画关键点与第二笔画关键点在字形曲线上是连续的,利用a*寻路算法搜索字形曲线上第一笔画关键点与第二笔画关键点之间的连续离散点,并将连续离散点作为笔画关键点,连接笔画关键点形成笔画曲线段。
8.其中,将连续离散点作为笔画关键点,连接笔画关键点形成笔画曲线段,包括:判断第一笔画关键点与第二笔画关键点在字形曲线上是否是连续;响应于第一笔画关键点与第二笔画关键点在字形曲线上是不连续的,仅连接第一笔画关键点与第二笔画关键点形成笔画曲线段,而不再搜索第一笔画关键点与第二笔画关键点之间的离散点。
9.其中,离散点在字形曲线上是非均匀分布的。
10.其中,第一区域的离散点个数大于第二区域的离散点个数,第一区域的字形曲线
的曲线变化幅度大于第二区域的字形曲线的曲线变化幅度。
11.其中,获取待处理字符的字形曲线,包括:获取待处理字符的字形关键点;基于字形关键点,利用二次贝塞尔曲线方程获取待处理字符的轮廓,得到待处理字符的字形曲线。
12.为解决上述技术问题,本技术采用的另一个技术方案是:提供一种字符笔画提取装置,该装置包括:获取模块,用于获取待处理字符的字形曲线;采样模块,用于对字形曲线进行离散采样,得到离散点集;生成模块,用于从离散点集中选取至少两个笔画关键点,获取至少包含两个笔画关键点的封闭曲线,得到字符的笔画。
13.为解决上述技术问题,本技术采用的另一个技术方案是:提供一种电子设备,包括相互耦接的存储器和处理器,存储器中存储有程序指令,处理器用于执行程序指令以实现上述的字符笔画提取方法。
14.为解决上述技术问题,本技术采用的另一个技术方案是:提供一种计算机可读存储介质,存储有能够被处理器运行的程序指令,程序指令用于实现上述的字符笔画提取方法。
15.本技术的有益效果是:区别于现有技术的情况,本技术提供一种字符笔画提取方法,该方法包括:获取待处理字符的字形曲线;对字形曲线进行离散采样,得到离散点集;从离散点集中选取至少两个笔画关键点,获取至少包含两个笔画关键点的封闭曲线,得到字符的笔画;故通过对字形曲线进行离散采样,能够更大程度地逼近待处理字符的原样且减少数据的存储空间;另外,选取离散点集中至少两个笔画关键点以生成封闭曲线,从而得到字符的笔画,实现快速精确地进行字符笔画的提取。
附图说明
16.图1是本技术提供的字符笔画提取方法一实施例的流程示意图;
17.图2是本技术提供的待处理字符一实施例的示意图;
18.图3是图1所示步骤s11一实施例的流程示意图;
19.图4是图1所示步骤s13一实施例的流程示意图;
20.图5是本技术提供的待处理字符另一实施例的示意图;
21.图6是本技术提供的字符笔画提取装置一实施例的框架示意图;
22.图7是本技术提供的电子设备一实施例的框架示意图;
23.图8是本技术提供的计算机可读存储介质一实施例的框架示意图。
具体实施方式
24.下面结合说明书附图,对本技术实施例的方案进行详细说明。
25.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本技术。
26.本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
27.请参阅图1,图1是本技术提供的字符笔画提取方法一实施例的流程示意图。需要
注意的是,若有实质上相同的结果,本实施例并不以图1所示的流程顺序为限。如图1所示,本实施例包括:
28.步骤s11:获取待处理字符的字形曲线。
29.本实施例的方法用于提取得到待处理字符的笔画,本文所述的待处理字符的笔画可以是将待处理字符进行拆分,提取得到待处理字符的所有笔画;或者,也可以是提取待处理字符的部分笔画。举例来说,如图2所示,图2是本技术提供的待处理字符一实施例的示意图,以待处理字符为“木”为例,可以将待处理字符“木”进行拆分,提取得到待处理字符的所有笔画,具体为“一”、“丨”、“丿”和或者也可以提取待处理字符“木”的部分笔画,如“一”和“丿”。
30.在一实施方式中,待处理字符可以是汉字,例如,甲骨文、小篆或者繁体字等。可以理解地,在其他实施方式中,待处理字符也可以是日文、英文、俄文等,可根据实际使用需要具体设置,在此不做具体限定。需要说明的是,为了便于下文的描述,本技术将以汉字作为待处理字符进行技术方案的描述,但可以理解地是,并不对待处理字符的类型进行限定。
31.在一实施方式中,可以从本地存储或云端存储获取得到待处理字符以及待处理字符的字形曲线。可以理解地,在其他实施方式中,也可利用二次贝塞尔曲线(b
é
zier curve)方程对待处理字符进行处理,以得到待处理字符的字形曲线,在此不做限定,可根据实际使用需要具体设置。
32.步骤s12:对字形曲线进行离散采样,得到离散点集。
33.由于待处理字符形态各异,为了最大程度地逼近待处理字符的原样,并且减少数据的存储空间。本实施方式中,对待处理字符的字形曲线进行离散采用,从而得到离散点集。
34.在一实施方式中,离散点在字形曲线上是非均匀分布的,离散点非均匀分布的设置,一方面既保留了待处理字符的原样,也最大程度地解决了存储空间的使用。
35.在一具体实施方式中,第一区域的离散点个数大于第二区域的离散点个数,第一区域的字形曲线的曲线变化幅度大于第二区域的字形曲线的变化幅度。也就是说,在字形曲线轮廓中曲线变化幅度较大的区域即第一区域设置较多的离散点,在字形曲线轮廓中曲线变化幅度较小的区域即第二区域设置较少的离散点,即在字形曲线轮廓中增加有利用后续生成封闭曲线的离散点,减少无用的离散点,使得后续生成封闭曲线而得到字符的笔画更加顺畅,且减少存储空间的使用。其中,不对第一区域的离散点个数和第二区域的离散点个数进行限定,可根据实际使用需要具体设置。
36.步骤s13:从离散点集中选取至少两个笔画关键点,获取至少包含两个笔画关键点的封闭曲线,得到字符的笔画。
37.本实施方式中,从离散点集中选取至少两个笔画关键点,并获取至少包含两个笔画关键点的封闭曲线,从而得到字符的笔画。也就是说,通过离散点集中的至少两个笔画关键点,能够获取得到包含两个笔画关键点的封闭曲线,即能够获取得到字符的笔画。
38.上述实施方式中,获取待处理字符的字形曲线;对字形曲线进行离散采样,得到离散点集;从离散点集中选取至少两个笔画关键点,获取至少包含两个笔画关键点的封闭曲线,得到字符的笔画;故通过对字形曲线进行离散采样,能够更大程度地逼近待处理字符的原样且减少数据的存储空间;另外,选取离散点集中至少两个笔画关键点以生成封闭曲线,
从而得到字符的笔画,实现快速精确地进行字符笔画的提取。
39.请参阅图3,图3是图1所示步骤s11一实施例的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图3所示的流程顺序为限。如图3所示,本实施例中,利用二次贝塞尔曲线方程对待处理字符进行处理,以得到待处理字符的字形曲线,具体包括:
40.步骤s111:获取待处理字符的字形关键点。
41.矢量字体的每个字形都是通过数学方程来描述的,一个字形上分割出若干个关键点,相邻关键点之间由一条光滑曲线连接,这条曲线可以由有限个参数来确定。由于矢量字体的特性,所以本实施方式中,首先获取待处理字符的字形关键点。具体可从字符库的文件中获取待处理字符的字形关键点。
42.步骤s112:基于字形关键点,利用二次贝塞尔曲线方程获取待处理字符的轮廓,得到待处理字符的字形曲线。
43.本实施方式中,根据字形关键点,利用二次贝塞尔曲线方程获取待处理字符的轮廓,从而得到待处理字符的字形曲线。也就是说,利用二次贝塞尔曲线方程沿着待处理字符的字形关键点,将待处理字符的轮廓绘制处理,绘制出来的待处理字符的轮廓即为待处理字符的字形曲线。
44.请参阅图4,图4是图1所示步骤s13一实施例的流程示意图。需要注意的是,若有实质上相同的结果,本实施例并不以图4所示的流程顺序为限。如图4所示,本实施例包括:
45.步骤s131:从离散点集中选取第一笔画关键点和第二笔画关键点。
46.本实施方式中,从离散点集中选取第一笔画关键点和第二笔画关键点。在一实施方式中,用户可通过人为从离散点集中选取第一笔画关键点和第二笔画关键点。可以理解地,在其他实施方式中,也可利用算法从离散点集中选取第一笔画关键点和第二笔画关键点,或者也可调用已有的其他算法从离散点集中选取第一笔画关键点和第二笔画关键点,可根据实际使用需要设置,在此不做具体限定。
47.步骤s132:搜索从第一笔画关键点到第二笔画关键点的最短路径,获取第一笔画曲线段;以及搜索从第二笔画关键点到第一笔画关键点的最短路径,获取第二笔画曲线段,得到笔画曲线。
48.本实施方式中,搜索从第一笔画关键点到第二笔画关键点的最短路径,以获取第一笔画曲线段;并且,搜索从第二笔画关键点到第一笔画关键点的最短路径,以获取第二笔画曲线段。第一笔画曲线段和第二笔画曲线段是有方向性的笔画曲线段,是矢量的,第一笔画曲线段是从第一笔画关键点到第二笔画关键点的方向,第二笔画曲线段是从第二笔画关键点到第一笔画关键点的方向,所以,第一笔画曲线段和第二笔画曲线段能够形成封闭的曲线,即笔画曲线为第一笔画曲线段和第二笔画曲线段形成的封闭曲线。
49.在一实施方式中,利用a*寻路算法搜索第一笔画关键点与第二笔画关键点之间的笔画曲线段即利用a*寻路算法搜索从第一笔画关键点到第二笔画关键点的最短路径以及从第二笔画关键点到第一笔画关键点的最短路径,a*寻路算法是一种静态路网中求解最短路径最有效的直接搜索算法,能够加速选择笔画曲线段的过程。具体公式如下所示:
50.f*(n)=g*(n)+h*(n)
51.其中,f*(n)表示从初始状态经由状态n到目标状态的最小代价估计;g*(n)表示在状态空间中从初始状态到状态n的最小估计代价;h*(n)表示从状态n到目标状态的路径的
最小估计代价。对于路径搜索的问题,状态就是字形曲线数据结构中的笔画关键点,代价就是距离;h(n)的选取要保证找到最短路径(最优解)的条件,关键在于估计函数f(n)的选取或者说h(n)的选取,以h(n)表达状态n到目标状态估计的距离,那么h(n)的选取大致有如下三种情况:如果h(n)《h*(n),这种情况下,搜索的点数多,搜索范围大,效率低,但是能够得到最优解即得到最短路径;h(n)=h*(n),此时的搜索效率是最高的;h(n)》h*(n),这种情况下,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解即不能保证得到最短路径。
52.在一具体实施方式中,如图5所示,图5是本技术提供的待处理字符另一实施例的示意图,判断第一笔画关键点与第二笔画关键点在字形曲线上是否连续,响应于第一笔画关键点与第二笔画关键点在字形曲线上是连续的,利用a*寻路算法搜索字形曲线上第一笔画关键点与第二笔画关键点之间的连续连散点,并将连续离散点作为笔画关键点,连接笔画关键形成笔画曲线段。也就是说,在确定第一笔画关键点和第二笔画关键点在字形曲线上是连续的,就需要开启a*寻路算法,这样第一笔画关键点和第二笔画关键点之间的连续离散点就可以全部被选中为笔画关键点,连接笔画关键点即可形成笔画曲线段。本技术强调的是加速离散点的选取过程,特别是使用寻路算法来处理连续离散点的情况,而现有的方式,根据已有的离散笔画数据去自动找到和现有离散数据的对应关系,如前所述这种对应关系是需要两种字体字形类似的,所以如果想要拆分现有的离散笔画数据里没有的字符,用现有的方案就无法做到。
53.在其他具体实施方式中,判断第一笔画关键点与第二笔画关键点在字形曲线上是否是连续的,响应于第一笔画关键点和第二笔画关键点在字形曲线上是不连续的,仅连接第一笔画关键点和第二笔画关键点形成笔画曲线段,而不再搜索第一笔画关键点与第二笔画关键点之间的离散点。也就是说,在确定第一笔画关键点和第二笔画关键点在字形曲线上是不连续的,则需要关闭a*寻路算法,此时第一笔画关键点和第二笔画关键点形成笔画曲线段,且第一笔画关键点和第二笔画关键点之间的连续离散点不作为笔画关键点,从而避免选中错误的笔画关键点。
54.在一实施方式中,在第一笔画关键点到第二笔画关键点之间的路径是唯一的情况下,可以使用自动补完即把第一笔画关键点到第二笔画关键点之间的连续离散点全部作为笔画关键点来形成笔画曲线段。
55.请参阅图6,图6是本技术提供的字符笔画提取装置一实施例的框架示意图。字符笔画提取装置60包括获取模块61、采样模块62和生成模块63。获取模块61用于获取待处理字符的字形曲线;采样模块62用于对字形曲线进行离散采样,得到离散点集;生成模块63用于从离散点集中选取至少两个笔画关键点,获取至少包含两个笔画关键点的封闭曲线,得到字符的笔画。
56.其中,生成模块63用于从离散点集中选取至少两个笔画关键点,获取至少包含两个笔画关键点的封闭曲线,具体包括:从离散点集中选取第一笔画关键点和第二笔画关键点;搜索从第一笔画关键点到第二笔画关键点的最短路径,获取第一笔画曲线段,以及搜索从第二笔画关键点到第一笔画关键点的最短路径,获取第二笔画曲线段,得到笔画曲线;其中,笔画曲线为第一笔画曲线段与第二笔画曲线段形成的封闭曲线。
57.其中,生成模块63用于笔画曲线段的获取步骤具体包括:利用a*寻路算法搜索第一笔画关键点与第二笔画关键点之间的笔画曲线段。
58.其中,生成模块63用于笔画曲线段的获取步骤具体包括:判断第一笔画关键点与第二笔画关键点在字形曲线上是否连续;响应于第一笔画关键点与第二笔画关键点在字形曲线上是连续的,利用a*寻路算法搜索字形曲线上第一笔画关键点与第二笔画关键点之间的连续离散点,并将连续离散点作为笔画关键点,连接笔画关键点形成笔画曲线段。
59.其中,生成模块63用于将连续离散点作为笔画关键点,连接笔画关键点形成笔画曲线段,具体包括:判断第一笔画关键点与第二笔画关键点在字形曲线上是否是连续的;响应于第一笔画关键点与第二笔画关键点在字形曲线上是不连续的,仅连接第一笔画关键点与第二笔画关键点形成笔画曲线段,而不再搜索第一笔画关键点与第二笔画关键点之间的离散点。
60.其中,上述离散点在字形曲线上是非均匀分布的。
61.其中,第一区域的离散点个数大于第二区域的离散点个数,第一区域的字形曲线的曲线变化幅度大于第二区域的字形曲线的曲线变化幅度。
62.其中,获取模块61用于获取待处理字符的字形曲线,具体包括:获取待处理字符的字形关键点;基于字形关键点,利用二次贝塞尔曲线方程获取待处理字符的轮廓,得到待处理字符的字形曲线。
63.请参阅图7,图7是本技术提供的电子设备一实施例的框架示意图。电子设备70包括相互耦接的存储器71和处理器72,存储器71中存储有程序指令,处理器72用于执行程序指令以实现上述任一字符笔画提取方法实施例中的步骤。具体地,电子设备70可以包括但不限于:台式计算机、笔记本电脑、服务器、手机、平板电脑等等,在此不做限定。
64.具体而言,处理器72用于控制其自身以及存储器71以实现上述任一字符笔画提取方法实施例中的步骤。处理器72还可以称为cpu(central processing unit,中央处理单元)。处理器72可能是一种集成电路芯片,具有信号的处理能力。处理器72还可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器72可以由集成电路芯片共同实现。
65.请参阅图8,图8是本技术提供的计算机可读存储介质一实施例的框架示意图。计算机可读存储介质80存储有能够被处理器运行的程序指令81,程序指令81用于实现上述任一字符笔画提取方法实施例中的步骤。
66.在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
67.上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
68.在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨
论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
69.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
70.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
71.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
72.以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1