文字转化为三维网格面片的方法、装置、设备及存储介质与流程

文档序号:31331798发布日期:2022-08-31 07:17阅读:84来源:国知局
文字转化为三维网格面片的方法、装置、设备及存储介质与流程

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.图1是本技术实施例提供的文字转化为三维网格面片的方法流程的一实现流程图;
26.图2是本技术实施例提供的文字转化为三维网格面片的方法中子流程的又一实现流程图;
27.图3是本技术实施例提供的文字转化为三维网格面片的方法中子流程的又一实现流程图;
28.图4是本技术实施例提供的文字转化为三维网格面片的方法中子流程的又一实现流程图;
29.图5是本技术实施例提供的文字转化为三维网格面片的方法中子流程的又一实现流程图;
30.图6是本技术实施例提供的文字转化为三维网格面片的方法中子流程的又一实现流程图;
31.图7是本技术实施例提供的文字转化为三维网格面片的方法中子流程的又一实现流程图;
32.图8是本技术实施例提供的文字转化为三维网格面片的装置示意图;
33.图9是本技术实施例提供的计算机设备的示意图。
具体实施方式
34.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术;本技术的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本技术的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
35.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
36.为了使本技术领域的人员更好地理解本技术方案,下面将结合附图,对本技术实施例中的技术方案进行清楚、完整地描述。
37.下面结合附图和实施方式对本发明进行详细说明。
38.需要说明的是,本技术实施例所提供的文字转化为三维网格面片的方法一般由服务器执行,相应地,文字转化为三维网格面片的装置一般配置于服务器中。
39.请参阅图1,图1示出了文字转化为三维网格面片的方法的一种具体实施方式。
40.需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限,该方法包括如下步骤:
41.s1:获取待处理文字,并获取待处理文字的文字轮廓矢量路径,且将文字轮廓矢量
路径进行分组,得到轮廓组别。
42.其中,轮廓组别分为外轮廓组别和内轮廓组别。
43.具体的,在需要对待处理文字转化为三维网格面片的时,先获取待处理文字,并获取待处理文字的文字轮廓矢量路径,再将文字轮廓矢量路径按照内外轮廓进行分组,得到轮廓组别。其中,轮廓组别分为外轮廓组别和内轮廓组别。
44.请参阅图2,图2示出了步骤s1的一种具体实施方式,详叙如下:
45.s11:获取待处理文字,并获取待处理文字的初始文字轮廓矢量路径。
46.s12:通过直线段拟合初始文字轮廓矢量路径,得到文字轮廓矢量路径。
47.s13:获取文字轮廓矢量路径中的顶点序列,并对顶点序列中的顶点进行方向计算,得到顶点方向,其中,顶点方向包括顺时针方向和逆时针方向。
48.s14:基于顶点方向将文字轮廓矢量路径进行分组,得到轮廓组别,其中,顺时针方向对应为外轮廓组别,逆时针方向对应为内轮廓组别。
49.具体的,因为文字每个字可能会有1到多个外轮廓路径,每个外轮廓内可能有0到多个内轮廓。所以先要对文字的所有轮廓进行分组。将一个外轮廓路径和它内部的内轮廓路径作为一组。判断外轮轮廓和内轮廓的方法是通过判断顶点序列是否顺时针方向。顺时针则为外轮廓,否则则为内轮廓。因为文字的轮廓矢量路径不会出现交叉的情况,所以判断一个内轮廓是否在一个外轮廓的内部,只需判断该内轮廓的第一个点是否在这个外轮廓的内部,无需判断所有的点是否在轮廓内部,有利于提高判断效率。判断顶点是否在一个轮廓内部可以调用opencv的pointpolygontest函数进行判断。同时对顶点序列中的顶点进行方向计算方式为:当i=n时,则i+1=0,其中cw表示顶点方向,xi和x
i+1
表示第i和第i+1个顶点在x轴的方向,yi和y
i+1
表示第i和第i+1个顶点在y轴的方向,n表示顶点数量,i表示第i个顶点。若cw》0,则顶点方向为顺时针,否则顶点方向为逆时针。
50.具体的,待处理文字对应的文字轮廓可以从freetype库中进行获取。获取到文字轮廓后,将文字轮廓进行矢量化,从而得到初始文字轮廓矢量路径。其中,freetype库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括truetype,opentype,type1,cid,cff,windows fon/fnt,x11 pcf等。
51.s2:基于外轮廓组别和内轮廓组别,将文字轮廓矢量路径生成文字三角网格,并识别文字三角网格中边缘拟合直线段的三角面缺失状况。
52.其中,三角面缺失状况分为部分缺失状况和全缺失状况。
53.具体的,采用delaunay算法,基于外轮廓组别和内轮廓组别,将文字轮廓矢量路径生成文字三角网格。其中,delaunay算法是指delaunay三角剖分算法(delaunay triangulation algorithm),其是点集的三角剖分,对数值分析(比如有限元分析)以及图形学来说,都是极为重要的一项预处理技术。在本技术实施例中,调用delaunay算法中的subdiv2d函数,将文字轮廓矢量路径生成文字三角网格。由于所生成的文字三角网格存在三角面缺失或者残缺的情况,所以需要识别文字三角网格中边缘拟合直线段的三角面缺失状况,以便将其补全。本技术实施例通过依次检索文字三角网格中所有的边缘拟合直线段是否有一个三角面包含该边缘拟合直线段;若不存在,则说明该线段的三角面是缺失的;若检索到该线附近存在三角面,只是没有以这个直线段为边的三角面,也即断裂边缘线存在
交叉的情况,则将三角面缺失状况为部分缺失状况;若检索到该线段附近完全没有三角面,也即断裂边缘线未存在交叉的情况,则将三角面缺失状况为全缺失状况。
54.s3:识别部分缺失状况对应的缺失边缘线,并基于缺失边缘线,重新生成部分缺失状况对应的三角面,得到第一补全三角面,且将第一补全三角面并入文字三角网格中。
55.请参阅图3,图3示出了步骤s3的一种具体实施方式,详叙如下:
56.s31:获取部分缺失状况对应的缺失边缘线,并获取与缺失边缘线相交叉的三角面,得到缺失三角面,且获取缺失三角面对应的顶点以及两个端点,作为补全点。
57.s32:从文字三角网格中剔除缺失三角面,并计算补全点的叉积,得到叉积结果。
58.s33:基于叉积结果,生成第一补全三角面,并将第一补全三角面并入文字三角网格中。
59.具体的,获取部分缺失状况对应的缺失边缘线,并获取与缺失边缘线相交叉的三角面,得到缺失三角面,从文字三角网格中剔除缺失三角面。依据右手规则,将局部剔除的三角面的顶点汇集起来,把不符合右手规则的顶点进行排除,因为该顶点跟它们连成的三角面在文字轮廓外面。其中,右手规则是指以右手拇指指向文字内部,其他手指指向路径方向。然后获取缺失三角面对应的顶点以及两个端点,作为补全点;再将右手掌心的端点作为边缘线段起始点a,右手拇指方向的顶点作为要测试的目标点c,其他手指指向路径方向的端点作为边缘线段的结束点b,再计算向量和的叉积计算补全点的叉积,得到叉积结果,若叉积结果处于文字轮廓外,则该目标点不符合要求;若叉积结果处于文字轮廓内,则该目标点符合要求,然后将服务号要求的目标点,通过delaunay算法生成三角面,得到第一补全三角面,并将第一补全三角面并入文字三角网格中,从而对该部分的三角面进行补全。
60.s4:识别全缺失状况对应的断裂边缘线的起始点以及终点,并基于断裂边缘线的起始点以及终点,构建全缺失状况对应的三角面,得到第二补全三角面,且将第二补全三角面并入文字三角网格中。
61.请参阅图4,图4示出了步骤s4的一种具体实施方式,详叙如下:
62.s41:识别全缺失状况对应的断裂边缘线的起始点以及终点。
63.s42:分别识别出起始点对应的三角面以及终点对应的三角面,得到起始点三角面以及终点三角面。
64.s43:在初始点三角面中获取与起始点相连的边缘线段,作为起始点相连线段,并在终点三角面中获取与终点相连的边缘线段,作为终点相连线段。
65.s44:计算起始点与起始点相连线段的夹角,得到起始点夹角,以及计算终点与终点相连线段的夹角,得到终点夹角。
66.s45:基于起始点夹角与终点夹角,获取满足预设条件的目标顶点,并基于目标顶点,构建全缺失状况对应的三角面,得到第二补全三角面,且将第二补全三角面并入文字三角网格中。
67.具体的,因为全缺失状况下的边缘线段是断裂的,而且没有跟其交叉的三角面,所以无法根据交叉三角面的顶点来筛选出合适的顶点。所以本技术实施例识别出断裂边缘线的起始点和终点所归属的三角面,再识别出将所归属的三角面对应合适的边,并将合适的边上的顶点进行局部delaunay算法三角化来补全三角面。本技术实施例中,识别全缺失状
况对应的断裂边缘线的起始点以及终点,并分别识别出起始点对应的三角面以及终点对应的三角面,得到起始点三角面以及终点三角面,然后在初始点三角面中获取与起始点相连的边缘线段,作为起始点相连线段,并在终点三角面中获取与终点相连的边缘线段,作为终点相连线段,再计算起始点与起始点相连线段的夹角,得到起始点夹角,以及计算终点与终点相连线段的夹角,得到终点夹角,然后基于起始点夹角与终点夹角,获取满足预设条件的目标顶点,并基于目标顶点,构建全缺失状况对应的三角面,得到第二补全三角面,且将第二补全三角面并入文字三角网格中。
68.若设s为起始点,e为终点,b为起始点相连线段上的点,c为终点相连线段上的点,θ为要求的夹角(也即起始点夹角或终点夹角),则计算起始点夹角θ的计算公式为:
69.如果cross《0,则θ=360-θ;
70.计算终点夹角θ的计算公式为:
71.;如果cross《0,则θ=360-θ;
72.其中,当起始夹角或终点夹角在逆时针方向最小时(也即满足预设条件),获取此时起始点相连线段上的点或终点相连线段上的点,作为目标顶点,并基于目标顶点,通过delaunay算法构建全缺失状况对应的三角面,得到第二补全三角面,且将第二补全三角面并入文字三角网格中。
73.s5:计算文字三角网格中三角面的重心点,并基于重心点,将文字三角网格中轮廓外的三角面进行剔除,得到初始文字三角网格。
74.请参阅图5,图5示出了步骤s5的一种具体实施方式,详叙如下:
75.s51:将文字三角网格中的任意三个顶点作为一组顶点组合,并基于顶点组合构建三角面组合,其中,三角面组合中包括三个三角面。
76.s52:计算三角面组合中每个三角面的重心点,并判断重心点是否满足预设要求。
77.s53:若存在任一重心点未满足预设要求,则将三角面组合作为轮廓外的三角面,并将轮廓外的三角面从文字三角网格中进行剔除,得到初始文字三角网格。
78.具体的,预设要求为三角面的重心的点需要落在外轮廓的内部,内轮廓的外部。本技术实施例中,将文字三角网格中的任意三个顶点作为一组顶点组合,并基于顶点组合构建三角面组合,其中,三角面组合中包括三个三角面,然后计算三角面组合中每个三角面的重心点,并判断重心点是否满足预设要求,若存在任一重心点未满足预设要求,则将三角面组合作为轮廓外的三角面,并将轮廓外的三角面从文字三角网格中进行剔除,得到初始文字三角网格。假设a、b、c为一组顶点组合的三个顶点,通过以下公式计算三角面的重心点;o1=(a+(a+b)/2+(a+c)/2)/3;o2=(b+(b+a)/2+(b+c)/2)/3;o3=(c+(c+a)/2+(c+b)/2)/3;其中,o1,o2,o3为三个三角面的重心点。
79.需要说明的是,为了防止算法内局部delaunay生成的三角面存在互相不符合要求的情况,在执行完步骤s5之后,重新执行步骤s3-s5,执行完毕后,再执行后续步骤s6-s7。
80.s6:识别初始文字三角网格中的残缺三角面,并将残缺三角面进行补全,得到第三补全三角面,且将第三补全三角面并入初始文字三角网格中。
81.请参阅图6,图6示出了步骤s6的一种具体实施方式,详叙如下:
82.s61:获取初始文字三角网络中任一边缘线段组合,其中,边缘线段组合为相关联的两条边缘线段。
83.s62:通过预设算法,计算边缘线段组合中两条边缘线段的夹角,得到边缘线段组合夹角,并基于边缘线段组合夹角,获取残缺三角面,其中,残缺三角面包括两条目标边缘线段。
84.s63:获取残缺三角面中除两条目标边缘线段之后的顶点,作为初始组建顶点。
85.s64:根据初始组建顶点出现的次数,获取目标组建顶点,并基于目标组建顶点,将残缺三角面进行补全,得到第三补全三角面,且将第三补全三角面并入初始文字三角网格中。
86.具体的,在经过步骤s5在文字三角网格中将轮廓外的三角面进行剔除之后,可能出现残缺三角面,但边缘线段又没有断裂,所以无法通过步骤s3和步骤s4的方式对其进行补全。
87.其中,相关联的两条边缘线段是指一条边缘线段的起点作为另一条边缘线段的终点的两条线段。假设边缘线段组合中一条边缘线段起始点为a,终点为b,与另一条边缘线段起始点为b,终点为c,两条边缘线段的夹角为θ或θ

,采用预设算法计算夹角,其中,预设算法包括点积方式和叉积方式的计算方式。
88.点积方式计算夹角θ:点积方式计算夹角θ:
89.如果cross《0,则θ=360-θ;
90.叉积方式计算夹角θ

:(路径为外轮廓);(路径为内轮廓);当θ

《0,则θ

=360+θ;(路径为外轮廓);(路径为内轮廓);
91.若出现和中的任一情况,则代表存在残缺三角面,并获取该残缺三角面;再获取残缺三角面中除两条目标边缘线段之后的顶点,作为初始组建顶点。在一具体实施中,将顶点a、b、c之外的所有顶点记录下来,也即(d1,d1’,d2,d3,d4,d4’,d5,d5’),其中d1和d1’,d4和d4’,d5和d5’是相同的点,代表它们出现了两次,而d2和d3只出现了一次,所以将其作为目标组建顶点,也即(d2,b,d3)组成第三补全三角面,且将第三补全三角面并入初始文字三角网格中。
92.s7:将初始文字三角网格中的顶点顺序进行校正,得到目标文字三角网格,并基于目标文字三角网格生成目标三维网格面片。
93.请参阅图7,图7示出了步骤s7的一种具体实施方式,详叙如下:
94.s71:计算初始文字三角网格中每个三角面的顶点叉积。
95.s72:基于顶点叉积,将初始文字三角网格中的顶点按照同一方向进行顺序校正,
得到目标文字三角网格。
96.s73:基于目标文字三角网格生成目标三维网格面片。
97.具体的,计算初始文字三角网格中每个三角面的顶点叉积,基于顶点叉积,将初始文字三角网格中的顶点按照同一方向进行顺序校正,得到目标文字三角网格,该同一方向可以为顺时针方向,也可以为逆时针方向。若三角面的三个顶点分别为a、b、c,则计算顶点叉积的方式为:
[0098][0099]
如果cross《0,则交换前面两点的顺序为(b,a,c),以使得初始文字三角网格中的顶点按照同一方向进行顺序校正。此时得到的目标文字三角网格是属于二维图形,将目标文字三角网格进行平移复制,并补全边缘垂直的立体三角网,得到目标三维网格面片。
[0100]
需要说明的是,本技术实施例文字类型可以为汉子的简繁体、英文、印度文、梵文以及韩文等等;因为中文字的结构比其他文字更复杂,所以中文可以转化为目标三维网格面片的情况,其它文字也可以进行转化。进一步的,本技术实施例可以不仅仅限于对文字的三维网格面片的转换,可以针对其他具备轮廓的目标进行三维网格面片的转换,例如logo等目标的转换。
[0101]
本实施例中,通过获取待处理文字,并获取待处理文字的文字轮廓矢量路径,且将文字轮廓矢量路径进行分组,得到轮廓组别,其中,轮廓组别分为外轮廓组别和内轮廓组别;基于外轮廓组别和内轮廓组别,将文字轮廓矢量路径生成文字三角网格,并识别文字三角网格中边缘拟合直线段的三角面缺失状况,其中,三角面缺失状况分为部分缺失状况和全缺失状况;识别部分缺失状况对应的缺失边缘线,并基于缺失边缘线,重新生成部分缺失状况对应的三角面,得到第一补全三角面,且将第一补全三角面并入文字三角网格中;识别全缺失状况对应的断裂边缘线的起始点以及终点,并基于断裂边缘线的起始点以及终点,构建全缺失状况对应的三角面,得到第二补全三角面,且将第二补全三角面并入文字三角网格中;计算文字三角网格中三角面的重心点,并基于重心点,将文字三角网格中轮廓外的三角面进行剔除,得到初始文字三角网格;识别初始文字三角网格中的残缺三角面,并将残缺三角面进行补全,得到第三补全三角面,且将第三补全三角面并入初始文字三角网格中;将初始文字三角网格中的顶点顺序进行校正,得到目标文字三角网格,并基于目标文字三角网格生成目标三维网格面片。本发明实施例通过获取待处理文字对应的文字轮廓矢量路径,再将文字轮廓矢量路径分成外轮廓组别和内轮廓组别,再生成文字三角网格,有利于提高文字转化为三角网格面片的精度,并且识别出文字三角网格的三角面缺失状况,并基于缺失状况,将文字三角网格进行补全,同时还将扩廓外的三角面剔除,并重新生成新的三角面,有利于将文字三角网格中的所有三角面进行完善,并基于完善后的初始文字三角网格进行校正,而后生成目标三维网格面片,从而提高文字转化为三维网格面片的精度,并增强文字转化为三维网格面片的效果。
[0102]
请参考图8,作为对上述图1所示方法的实现,本技术提供了一种文字转化为三维网格面片的装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
[0103]
如图8所示,本实施例的文字转化为三维网格面片的装置包括:待处理文字获取模块81、文字三角网格生成模块82、缺失边缘线补全模块83、断裂边缘线补全模块84、轮廓外
三角面剔除模块85、残缺三角面补全模块86及目标三维网格面片生成模块87,其中:
[0104]
待处理文字获取模块81,用于获取待处理文字,并获取待处理文字的文字轮廓矢量路径,且将文字轮廓矢量路径进行分组,得到轮廓组别,其中,轮廓组别分为外轮廓组别和内轮廓组别;
[0105]
文字三角网格生成模块82,用于基于外轮廓组别和内轮廓组别,将文字轮廓矢量路径生成文字三角网格,并识别文字三角网格中边缘拟合直线段的三角面缺失状况,其中,三角面缺失状况分为部分缺失状况和全缺失状况;
[0106]
缺失边缘线补全模块83,用于识别部分缺失状况对应的缺失边缘线,并基于缺失边缘线,重新生成部分缺失状况对应的三角面,得到第一补全三角面,且将第一补全三角面并入文字三角网格中;
[0107]
断裂边缘线补全模块84,用于识别全缺失状况对应的断裂边缘线的起始点以及终点,并基于断裂边缘线的起始点以及终点,构建全缺失状况对应的三角面,得到第二补全三角面,且将第二补全三角面并入文字三角网格中;
[0108]
轮廓外三角面剔除模块85,用于计算文字三角网格中三角面的重心点,并基于重心点,将文字三角网格中轮廓外的三角面进行剔除,得到初始文字三角网格;
[0109]
残缺三角面补全模块86,用于识别初始文字三角网格中的残缺三角面,并将残缺三角面进行补全,得到第三补全三角面,且将第三补全三角面并入初始文字三角网格中;
[0110]
目标三维网格面片生成模块87,用于将初始文字三角网格中的顶点顺序进行校正,得到目标文字三角网格,并基于目标文字三角网格生成目标三维网格面片。
[0111]
进一步的,待处理文字获取模块81包括:
[0112]
矢量路径获取单元,用于获取待处理文字,并获取待处理文字的初始文字轮廓矢量路径;
[0113]
直线度拟合单元,用于通过直线段拟合初始文字轮廓矢量路径,得到文字轮廓矢量路径;
[0114]
顶点方向计算单元,用于获取文字轮廓矢量路径中的顶点序列,并对顶点序列中的顶点进行方向计算,得到顶点方向,其中,顶点方向包括顺时针方向和逆时针方向;
[0115]
轮廓组别生成单元,用于基于顶点方向将文字轮廓矢量路径进行分组,得到轮廓组别,其中,顺时针方向对应为外轮廓组别,逆时针方向对应为内轮廓组别。
[0116]
进一步的,缺失边缘线补全模块83包括:
[0117]
补全点获取单元,用于获取部分缺失状况对应的缺失边缘线,并获取与缺失边缘线相交叉的三角面,得到缺失三角面,且获取缺失三角面对应的顶点以及两个端点,作为补全点;
[0118]
叉积结果计算单元,用于从文字三角网格中剔除缺失三角面,并计算补全点的叉积,得到叉积结果;
[0119]
第一补全三角面生成单元,用于基于叉积结果,生成第一补全三角面,并将第一补全三角面并入文字三角网格中。
[0120]
进一步的,断裂边缘线补全模块84包括:
[0121]
起始点识别单元,用于识别全缺失状况对应的断裂边缘线的起始点以及终点;
[0122]
三角面识别单元,用于分别识别出起始点对应的三角面以及终点对应的三角面,
得到起始点三角面以及终点三角面;
[0123]
相连线段获取单元,用于在初始点三角面中获取与起始点相连的边缘线段,作为起始点相连线段,并在终点三角面中获取与终点相连的边缘线段,作为终点相连线段;
[0124]
夹角计算单元,用于计算起始点与起始点相连线段的夹角,得到起始点夹角,以及计算终点与终点相连线段的夹角,得到终点夹角;
[0125]
第二补全三角面生成单元,用于基于起始点夹角与终点夹角,获取满足预设条件的目标顶点,并基于目标顶点,构建全缺失状况对应的三角面,得到第二补全三角面,且将第二补全三角面并入文字三角网格中。
[0126]
进一步的,轮廓外三角面剔除模块85包括:
[0127]
三角面组合构建单元,用于将文字三角网格中的任意三个顶点作为一组顶点组合,并基于顶点组合构建三角面组合,其中,三角面组合中包括三个三角面;
[0128]
重心点计算单元,用于计算三角面组合中每个三角面的重心点,并判断重心点是否满足预设要求;
[0129]
初始文字三角网格生成单元,用于若存在任一重心点未满足预设要求,则将三角面组合作为轮廓外的三角面,并将轮廓外的三角面从文字三角网格中进行剔除,得到初始文字三角网格。
[0130]
进一步的,残缺三角面补全模块86包括:
[0131]
边缘线段组合获取单元,用于获取初始文字三角网络中任一边缘线段组合,其中,边缘线段组合为相关联的两条边缘线段;
[0132]
残缺三角面获取单元,用于通过预设算法,计算边缘线段组合中两条边缘线段的夹角,得到边缘线段组合夹角,并基于边缘线段组合夹角,获取残缺三角面,其中,残缺三角面包括两条目标边缘线段;
[0133]
初始组建顶点单元,用于获取残缺三角面中除两条目标边缘线段之后的顶点,作为初始组建顶点;
[0134]
第三补全三角面生成单元,用于根据初始组建顶点出现的次数,获取目标组建顶点,并基于目标组建顶点,将残缺三角面进行补全,得到第三补全三角面,且将第三补全三角面并入初始文字三角网格中。
[0135]
进一步的,目标三维网格面片生成模块87包括:
[0136]
顶点叉积计算单元,用于计算初始文字三角网格中每个三角面的顶点叉积;
[0137]
目标文字三角网格生成单元,用于基于顶点叉积,将初始文字三角网格中的顶点按照同一方向进行顺序校正,得到目标文字三角网格;
[0138]
目标文字三角网格转换单元,用于基于目标文字三角网格生成目标三维网格面片。
[0139]
为解决上述技术问题,本技术实施例还提供计算机设备。具体请参阅图9,图9为本实施例计算机设备基本结构框图。
[0140]
计算机设备9包括通过系统总线相互通信连接存储器92、处理器92、网络接口93。需要指出的是,图中仅示出了具有三种组件存储器92、处理器92、网络接口93的计算机设备9,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储
的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field -programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
[0141]
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
[0142]
存储器92至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器92可以是计算机设备9的内部存储单元,例如该计算机设备9的硬盘或内存。在另一些实施例中,存储器92也可以是计算机设备9的外部存储设备,例如该计算机设备9上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器92还可以既包括计算机设备9的内部存储单元也包括其外部存储设备。本实施例中,存储器92通常用于存储安装于计算机设备9的操作系统和各类应用软件,例如文字转化为三维网格面片的方法的程序代码等。此外,存储器92还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0143]
处理器92在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器92通常用于控制计算机设备9的总体操作。本实施例中,处理器92用于运行存储器92中存储的程序代码或者处理数据,例如运行上述文字转化为三维网格面片的方法的程序代码,以实现文字转化为三维网格面片的方法的各种实施例。
[0144]
网络接口93可包括无线网络接口或有线网络接口,该网络接口93通常用于在计算机设备9与其他电子设备之间建立通信连接。
[0145]
本技术还提供了另一种实施方式,即提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序可被至少一个处理器执行,以使至少一个处理器执行如上述的一种文字转化为三维网格面片的方法的步骤。
[0146]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例的方法。
[0147]
显然,以上所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例,附图中给出了本技术的较佳实施例,但并不限制本技术的专利范围。本技术可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本技术的公开内容的理解更加透彻全面。尽管参照前述实施例对本技术进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本技术说明书及附图内容所做的等效结构,直接或间接运用在其他
相关的技术领域,均同理在本技术专利保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1