字体轮廓的层次结构分析方法及系统与流程

文档序号:20753372发布日期:2020-05-15 17:14阅读:240来源:国知局
字体轮廓的层次结构分析方法及系统与流程

本发明涉及字体处理技术领域,特别涉及一种字体轮廓的层次结构分析方法、一种计算机可读存储介质、一种计算机设备和一种字体轮廓的层次结构分析系统。



背景技术:

相关技术中,字体轮廓线由多段curve首尾连接而成的闭环,并且内轮廓线和外轮廓线的curve的连接方向不一样,一般包括逆时针和顺时针两种,因此字体轮廓线的层次结构判断通常是根据轮廓线的不同方向排序确定的,例如将pathlist文件的第一个path轮廓线设定为外轮廓,新建一个shape,随后的path轮廓线如果和第一个path轮廓线的方向不一样,就作为内轮廓加入到第一个shape中,如果和第一个path轮廓线方向一样就新建一个shape,将该path轮廓线作为外轮廓加入其中,以此类推;但是有一些字体不符合排序规则,导致采用该方法容易出现判断错误,以至出现镂空问题,从而大大降低了识别的准确率。



技术实现要素:

本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种字体轮廓的层次结构分析方法,通过轮廓线的几何关系判断字体轮廓线的层次结构,以适用更多不符合常见规则的字体,从而大大提高了识别的准确率。

本发明的第二个目的在于提出一种计算机可读存储介质。

本发明的第三个目的在于提出一种计算机设备。

本发明的第四个目的在于提出一种字体轮廓的层次结构分析系统。

为达到上述目的,本发明第一方面实施例提出了一种字体轮廓的层次结构分析方法,包括以下步骤:获取待处理字符的pathlist文件;遍历所述pathlist文件中的所有path轮廓线,以判断所述pathlist文件中每一条path轮廓线的轮廓类型,其中,所述轮廓类型包括内轮廓和外轮廓;计算所述pathlist文件中每一条path轮廓线所包含的面积;根据所述每一条path轮廓线的轮廓类型和所述每一条path轮廓线所包含的面积确定包含目标内轮廓的每个外轮廓所占有的面积si,并将si与目标内轮廓的面积进行比较,以将与所述目标内轮廓的面积最接近的外轮廓作为所述目标内轮廓的直接外轮廓。

根据本发明实施例的字体轮廓的层次结构分析方法,首先获取待处理字符的pathlist文件;接着遍历pathlist文件中的所有path轮廓线,以判断pathlist文件中每一条path轮廓线的轮廓类型,其中,轮廓类型包括内轮廓和外轮廓;然后计算pathlist文件中每一条path轮廓线所包含的面积;最后根据每一条path轮廓线的轮廓类型和每一条path轮廓线所包含的面积确定包含目标内轮廓的每个外轮廓所占有的面积si,并将si与目标内轮廓的面积进行比较,以将与目标内轮廓的面积最接近的外轮廓作为目标内轮廓的直接外轮廓;由此,通过找到比每个目标内轮廓所占有的面积大且又最接近的外轮廓所占有的面积,并将该外轮廓作为该目标内轮廓的直接外轮廓,进而确定字体轮廓线的层次结构,从而大大提高了识别的准确率。

另外,根据本发明上述实施例提出的字体轮廓的层次结构分析方法还可以具有如下附加的技术特征:

可选地,遍历所述pathlist文件中的所有path轮廓线,以判断所述pathlist文件中每一条path轮廓线的轮廓类型,包括:判断所述pathlist文件中任意一条path轮廓线被包含在其他path轮廓线内的数量;如果该path轮廓线被包含在其他path轮廓线内的数量为奇数,则判断该path轮廓线为内轮廓;如果该path轮廓线被包含在其他path轮廓线内的数量为偶数,则判断该path轮廓线为外轮廓。

可选地,根据以下步骤判断任意一条path轮廓线是否被包含在其他path轮廓线内:对该path轮廓线进行采样,以提取m个采样点,其中,m为正整数;如果m个采样点中存在n个采样点被包含在其他path轮廓线内,则判断该path轮廓线被包含在其他path轮廓线内,其中,n为小于等于m的正整数。

为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有字体轮廓的层次结构分析程序,该字体轮廓的层次结构分析程序被处理器执行时实现如上述的字体轮廓的层次结构分析方法。

根据本发明实施例的计算机可读存储介质,通过存储字体轮廓的层次结构分析程序,以便处理器在执行该字体轮廓的层次结构分析程序时实现如上述的字体轮廓的层次结构分析方法,从而大大提高了字体轮廓层次结构的识别准确率。

为达到上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述的字体轮廓的层次结构分析方法。

根据本发明实施例的计算机设备,通过存储器存储可在处理器上运行的计算机程序,以便处理器在执行该计算机程序时,实现如上述的基于大型活动的停车自助缴费方法,从而大大提高了字体轮廓层次结构的识别准确率。

为达到上述目的,本发明第四方面实施例提出了一种字体轮廓的层次结构分析系统,包括获取模块,用于获取待处理字符的pathlist文件;判断模块,用于遍历所述pathlist文件中的所有path轮廓线,以判断所述pathlist文件中每一条path轮廓线的轮廓类型,其中,所述轮廓类型包括内轮廓和外轮廓;计算模块,用于计算所述pathlist文件中每一条path轮廓线所包含的面积;寻找模块,用于根据所述每一条path轮廓线的轮廓类型和所述每一条path轮廓线所包含的面积确定包含目标内轮廓的每个外轮廓所占有的面积si,并将si与目标内轮廓的面积进行比较,以将与所述目标内轮廓的面积最接近的外轮廓作为所述目标内轮廓的直接外轮廓。

根据本发明实施例的一种字体轮廓的层次结构分析系统,通过获取模块获取待处理字符的pathlist文件;判断模块遍历pathlist文件中的所有path轮廓线,以判断pathlist文件中每一条path轮廓线的轮廓类型,其中,轮廓类型包括内轮廓和外轮廓;再通过计算模块计算所述thlist文件中每一条path轮廓线所包含的面积;最后通过寻找模块根据每一条path轮廓线的轮廓类型和每一条path轮廓线所包含的面积确定包含目标内轮廓的每个外轮廓所占有的面积si,并将si与目标内轮廓的面积进行比较,以将与目标内轮廓的面积最接近的外轮廓作为目标内轮廓的直接外轮廓;由此,通过找到比每个目标内轮廓所占有的面积大且又最接近的外轮廓所占有的面积,并将该外轮廓作为该目标内轮廓的直接外轮廓,进而确定字体轮廓线的层次结构,从而大大提高了识别的准确率。

另外,根据本发明上述实施例提出的字体轮廓的层次结构分析系统还可以具有如下附加的技术特征:

可选地,遍历所述pathlist文件中的所有path轮廓线,以判断所述pathlist文件中每一条path轮廓线的轮廓类型,包括:判断所述pathlist文件中任意一条path轮廓线被包含在其他path轮廓线内的数量;如果该path轮廓线被包含在其他path轮廓线内的数量为奇数,则判断该path轮廓线为内轮廓;如果该path轮廓线被包含在其他path轮廓线内的数量为偶数,则判断该path轮廓线为外轮廓。

可选地,根据以下步骤判断任意一条path轮廓线是否被包含在其他path轮廓线内:对该path轮廓线进行采样,以提取m个采样点,其中,m为正整数;如果m个采样点中存在n个采样点被包含在其他path轮廓线内,则判断该path轮廓线被包含在其他path轮廓线内,其中,n为小于等于m的正整数。

附图说明

图1为根据本发明实施例的字体轮廓的层次结构分析方法的流程示意图;

图2为根据本发明一个实施例的path轮廓线的结构示意图;

图3为根据本发明一个实施例的pathlist的结构示意图;

图4为根据本发明一个实施例的字体轮廓的层次结构分析方法的流程示意图;

图5为根据本发明一个实施例的字体轮廓的层次结构分析系统的方框示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

图1为根据本发明实施例的字体轮廓的层次结构分析方法的流程示意图;如图1所示,本发明实施例的字体轮廓的层次结构分析方法包括以下步骤:

步骤101,获取待处理字符的pathlist文件。

作为一个实施例,pathlist文件可在字体文件中获取。

也就是说,在字体文件中查找字符串中每个字符的pathlist。

作为一个具体实施例,根据用户输入获取待处理字体,并在ttf(truetypefont)字体文件中获取待处理字体的每个字符的pathlist。

需要说明的是,字体文件中的一个文字有且只有一个pathlist,一个pathlist可以拆分成一个或者多个shape,shape由一个内轮廓和一个外轮廓构成。

步骤102,遍历pathlist文件中的所有path轮廓线,以判断pathlist文件中每一条path轮廓线的轮廓类型,其中,轮廓类型包括内轮廓和外轮廓。

需要说明的是,如图2所示,path为多段curve首尾连接而成的闭环,包括内轮廓和外轮廓两种类型,curve包括直线、二次贝塞尔曲线和三次贝塞尔曲线等类型。

也就是说,在pathlist文件中找到所有的path轮廓线,并判断每一条path轮廓线是内轮廓还是外轮廓。

步骤103,计算pathlist文件中每一条path轮廓线所包含的面积。

也就是说,计算出pathlist文件中每一条path轮廓线所围成的面积大小。

步骤104,根据每一条path轮廓线的轮廓类型和每一条path轮廓线所包含的面积确定包含目标内轮廓的每个外轮廓所占有的面积si,并将si与目标内轮廓的面积进行比较,以将与目标内轮廓的面积最接近的外轮廓作为目标内轮廓的直接外轮廓。

也就是说,在判断出pathlist文件中的所有path轮廓线的轮廓类型及所有path轮廓线所围成的面积后,以其中一条内轮廓为目标内轮廓,将包含该目标内轮廓的所有外轮廓所围成的面积一一与该目标内轮廓所围成的面积进行比较,以获取与该目标内轮廓所围成的面积最为接近的外轮廓所围成的面积,并将该外轮廓作为该目标内轮廓的直接外轮廓,构成一个shape;依此类推,最终找到所有内轮廓对应的直接外轮廓。

综上所述,根据本发明实施例的字体轮廓的层次结构分析方法,首先获取待处理字符的pathlist文件;接着遍历pathlist文件中的所有path轮廓线,以判断pathlist文件中每一条path轮廓线的轮廓类型,其中,轮廓类型包括内轮廓和外轮廓;然后计算pathlist文件中每一条path轮廓线所包含的面积;最后根据每一条path轮廓线的轮廓类型和每一条path轮廓线所包含的面积确定包含目标内轮廓的每个外轮廓所占有的面积si,并将si与目标内轮廓的面积进行比较,以将与目标内轮廓的面积最接近的外轮廓作为目标内轮廓的直接外轮廓;由此,通过找到比每个目标内轮廓所占有的面积大且又最接近的外轮廓所占有的面积,并将该外轮廓作为该目标内轮廓的直接外轮廓,进而确定字体轮廓线的层次结构,从而大大提高了识别的准确率。

另外,图4为根据本发明一个具体实施例的字体轮廓的层次结构分析方法的流程示意图;如图4所示,本实施例的字体轮廓的层次结构分析方法包括以下步骤:

步骤201,获取待处理字符的pathlist文件。

步骤202,判断pathlist文件中任意一条path轮廓线被包含在其他path轮廓线内的数量。

也就是说,判断pathlist文件中每一条path轮廓线被多少条pathlist文件中其他path轮廓线包含。

作为一个实施例,如图3所示,path1被path2、path3和path4包含,所以path1被包含在其他path轮廓线内的数量为3;path2被path3和path4包含,所以path2被包含在其他path轮廓线内的数量为2。

作为一个实施例,通过对path轮廓线进行采样,以提取m个采样点,其中,m为正整数;如果m个采样点中存在n个采样点被包含在其他path轮廓线内,则判断该path轮廓线被包含在其他path轮廓线内,其中,n为小于等于m的正整数。

优选地,如果则判断该path轮廓线被包含在其他path轮廓线内,也就是说,如果有60%的采样点包含在其他path轮廓线内,则判断该path轮廓线被包含在其他path轮廓线内。

步骤203,如果该path轮廓线被包含在其他path轮廓线内的数量为奇数,则判断该path轮廓线为内轮廓。

步骤204,如果该path轮廓线被包含在其他path轮廓线内的数量为偶数,则判断该path轮廓线为外轮廓。

作为一个实施例,如图3所示,path1被包含在其他path轮廓线内的数量为3,所以path1被包含在其他path轮廓线内的数量为奇数,故判断path1为内轮廓,同理,path3为内轮廓,path2、path4和path5为外轮廓。

步骤205,计算pathlist文件中每一条path轮廓线所包含的面积。

步骤206,根据每一条path轮廓线的轮廓类型和每一条path轮廓线所包含的面积确定包含目标内轮廓的每个外轮廓所占有的面积si,并将si与目标内轮廓的面积进行比较,以将与目标内轮廓的面积最接近的外轮廓作为目标内轮廓的直接外轮廓。

另外,本发明实施例还提出了一种计算机可读存储介质,其上存储有字体轮廓的层次结构分析程序,该字体轮廓的层次结构分析程序被处理器执行时实现如上述的字体轮廓的层次结构分析方法。

根据本发明实施例的计算机可读存储介质,通过存储字体轮廓的层次结构分析程序,以便处理器在执行该字体轮廓的层次结构分析程序时实现如上述的字体轮廓的层次结构分析方法,从而大大提高了字体轮廓层次结构的识别准确率。

另外,本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述的字体轮廓的层次结构分析方法。

根据本发明实施例的计算机设备,通过存储器存储可在处理器上运行的计算机程序,以便处理器在执行该计算机程序时,实现如上述的基于大型活动的停车自助缴费方法,从而大大提高了字体轮廓层次结构的识别准确率。

图5为根据本发明一个具体实施例的字体轮廓的层次结构分析系统的方框示意图;如图5所示,本实施例的字体轮廓的层次结构分析系统包括:获取模块501、判断模块502、计算模块503和寻找模块504。

其中,获取模块501用于获取待处理字符的pathlist文件;判断模块502用于遍历pathlist文件中的所有path轮廓线,以判断pathlist文件中每一条path轮廓线的轮廓类型,其中,轮廓类型包括内轮廓和外轮廓;计算模块503,用于计算pathlist文件中每一条path轮廓线所包含的面积;寻找模块504,用于根据每一条path轮廓线的轮廓类型和每一条path轮廓线所包含的面积确定包含目标内轮廓的每个外轮廓所占有的面积si,并将si与目标内轮廓的面积进行比较,以将与目标内轮廓的面积最接近的外轮廓作为目标内轮廓的直接外轮廓。

进一步地,遍历pathlist文件中的所有path轮廓线,以判断pathlist文件中每一条path轮廓线的轮廓类型,包括:判断pathlist文件中任意一条path轮廓线被包含在其他path轮廓线内的数量;如果该path轮廓线被包含在其他path轮廓线内的数量为奇数,则判断该path轮廓线为内轮廓;如果该path轮廓线被包含在其他path轮廓线内的数量为偶数,则判断该path轮廓线为外轮廓。

进一步地,根据以下步骤判断任意一条path轮廓线是否被包含在其他path轮廓线内:对该path轮廓线进行采样,以提取m个采样点,其中,m为正整数;如果m个采样点中存在n个采样点被包含在其他path轮廓线内,则判断该path轮廓线被包含在其他path轮廓线内,其中,n为小于等于m的正整数。

需要说明的是,前述对于字体轮廓的层次结构分析方法的实施例的解释说明同样适用于本实施例的字体轮廓的层次结构分析系统,此处不再赘述。

根据本发明实施例的一种字体轮廓的层次结构分析系统,通过获取模块获取待处理字符的pathlist文件;判断模块遍历pathlist文件中的所有path轮廓线,以判断pathlist文件中每一条path轮廓线的轮廓类型,其中,轮廓类型包括内轮廓和外轮廓;再通过计算模块计算所述thlist文件中每一条path轮廓线所包含的面积;最后通过寻找模块根据每一条path轮廓线的轮廓类型和每一条path轮廓线所包含的面积确定包含目标内轮廓的每个外轮廓所占有的面积si,并将si与目标内轮廓的面积进行比较,以将与目标内轮廓的面积最接近的外轮廓作为目标内轮廓的直接外轮廓;由此,通过找到比每个目标内轮廓所占有的面积大且又最接近的外轮廓所占有的面积,并将该外轮廓作为该目标内轮廓的直接外轮廓,进而确定字体轮廓线的层次结构,从而大大提高了识别的准确率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1