一种基于几何的三维模型拼接方法及装置与流程

文档序号:29809082发布日期:2022-04-27 02:15阅读:518来源:国知局
一种基于几何的三维模型拼接方法及装置与流程

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.图1为本技术实施例提供的一种基于几何的三维模型拼接方法的流程示意图;
38.图2为本技术实施例提供的一种第一模型和第二模型的模型示意图;
39.图3为本技术实施例提供的对第一模型和第二模型的边界轮廓线进行平滑处理的流程示意图;
40.图4为本技术实施例提供的一种第二模型上的边界顶点和边界边的示意图;
41.图5为本技术实施例提供的添加新的边界边的示意图;
42.图6为本技术实施例提供的一种第二模型平滑前和平滑后的模型示意图;
43.图7为本技术实施例提供的构建三角形的流程示意图;
44.图8为本技术实施例提供的构建第一类三角形之后的检查流程示意图;
45.图9为本技术实施例提供的构建第二类三角形之后的检查流程示意图;
46.图10为本技术实施例提供的一种目标模型的模型示意图;
47.图11为本技术实施例提供的一种目标对象的示例图;
48.图12为本技术实施例提供的一种基于几何的三维模型拼接装置的示意图;
49.图13为本技术实施例提供的一种计算设备的示意图。
具体实施方式
50.结合背景技术介绍的内容,目前存在的三维模型的拼接方法,无法保证三维模型的拓扑不变。而为了保证多个待拼接的部分三维模型各自原有的纹理贴图,可以在新的三维模型上进行复用,因此要求拼接后的三维模型相比于多个待拼接的部分三维模型,需要保持拓扑不变。
51.为便于理解,首先对基于几何的三维模型进行介绍。三维模型的模型数据通常可以采用顶点(vertex,以下实施例中以v来表示)、边(edge,以下实施例中以e来表示)、面以及顶点、边和面的邻接关系来表示。一些实施例中,三维模型中的一个边还可以由两个带有方向的半边来表示。一般情况下,三维模型中顶点、边和面的邻接关系为由三个顶点和三个边组成一个三角形面,因此三维模型为由多个三角形面组成的拓扑结构。
52.通常,三维模型可以分为带边界和不带边界两种。若组成三维模型的任意边都被两个三角形面所共享时,此时模型是无边界的(也可称为封闭的),否则就是有边界的(也可称为开放的)。可以理解,两个或者多个无边界三维模型的拼接必然会改变原有的拓扑。而有无边界三维模型的拼接如果要保持拓扑不变,在拼接过程中不能改变原三维模型的顶点数量。
53.目前,现有技术中采用的三维模型的拼接方法,由于可能会插入一些新顶点,也可能删除部分顶点,因此无法保证三维模型的拓扑不变。例如,现有技术中一种实现方式为,首先对待拼接的模型的边缘进行采样,然后根据采样点的信息进行拟合,以得到过渡区域的几何模型,最后再对融合后的模型进行平滑。该实现方式中,由于对待拼接模型的边界进行了重采样,以及对过渡区域进行了拟合,因此必然会导致三维模型的拓扑改变,从而可能导致待拼接模型的原有纹理贴图无法在新的三维模型上进行较好的复用。
54.有鉴于此,本技术实施例提供一种基于几何的三维模型拼接方法。在拼接过程中,该方法不会产生新的顶点,也不会删除原有的顶点,并且参与拼接的模型的原有邻接关系
不会发生变化,从而可以提高三维模型拼接的准确性和效果,并且可以保证待拼接模型的原有纹理贴图可以在新的三维模型上进行复用。
55.需要说明的是,本技术中涉及的多个,是指两个或两个以上。另外,尽管在本技术实施例中可能采用术语第一、第二等来描述各数据、但这些数据不应限于这些术语。这些术语仅用来将各数据彼此区分开。
56.下面将结合附图对本技术实施例作进一步地详细描述。
57.参阅图1,为本技术实施例提供的一种基于几何的三维模型拼接方法的流程示意图。该方法可以由计算设备、处理器或芯片等具有处理能力的器件进行处理,该方法的流程可以包括:
58.步骤101、从第一模型和第二模型的模型数据中,查找第一模型的边界特征数据和第二模型的边界特征数据,所述边界特征数据包括边界边和边界顶点。其中,所述第一模型为第一对象的几何模型,所述第二模型为第二对象的几何模型,所述第一对象和所述第二对象组成目标对象。对第一模型进行纹理贴图之后,可以得到第一对象;同理,对第二模型进行纹理贴图之后可以得到第二对象。
59.其中,第一模型和第二模型为待拼接的部分三维模型,可以为通过不同设备生成或扫描的几何模型。例如第一模型和第二模型可以分别为精度较高的头部模型和精度中等的躯干模型,则目标模型为人体模型。或例如,在体积视频生成领域,第一模型和第二模型可以分别手部模型和身体模型,当手部距离采集设备较远时,导致采集到的手部的深度数据较为稀疏,导致手部模型的重建质量较差;然后结合深度学习,从颜色图像中重建出一个质量较高的手部模型;再将重建之后的手部模型拼接到身体模型上;此时第一模型可以为手部模型、第二模型可以为身体模型。
60.可以理解,第一对象和第二对象分别为目标对象对应的两个组成部分,则第一模型和第二模型为目标模型的两个组成部分的部分三维模型,本技术对目标对象的具体形式不进行限定,也即可以为人物、物体等可以进行基于集几何的三维模型拼接的对象。此外,本技术实施例中是以第一对象和第二对象作为示例,实际实现时,组成目标对象可能具有更多的部分三维对象(例如多于两个部分三维对象),则多个部分三维对象中需要拼接的两个对象均可以作为本技术实施例中的第一对象和第二对象,多个三维对象依次进行拼接,得到一个中间的目标对象,最后得到完成的三维目标对象。参阅图2,为本技术实施例提供的一种第一模型和第二模型的模型示意图。以下实施例中,以第一模型为头部模型(也即第一对象为人体头部),第二模型为躯干模型(也即第二对象为人体躯干)作为示例进行介绍。
61.一种可选的实施方式中,从图2中示出的内容可以得到,在头部模型和躯干模型的待拼接的边界轮廓线处,由于边界轮廓线上的连续的三个顶点以及连接三个顶点的两个边组成的邻接关系,构成了很多接近直角的角度,存在不平滑的问题,从而可能会导致在拼接过程出现三角形自相交或者三角形退化的问题出现,从而造成三维模型的不准确,进而导致影响纹理贴图时的呈现效果。其中,三角形自相交表示存在两个三角形面之间存在交叉或交集。三角形退化表示三角形的面积接近于零。为避免该问题的发生,本技术实施时,可以预先对第一模型和第二模型的边界轮廓线进行平滑处理。
62.一种可能的实施例中,参阅图3,为本技术实施例提供的对第一模型和第二模型的边界轮廓线进行平滑处理的流程示意图。对第一模型和第二模型的边界轮廓线进行平滑处
理可以包括以下步骤:
63.步骤1011、获取第一模型的原始模型数据和第二模型的原始模型数据。示例性的,第一模型和第二模型的模型数据可以为分别通过不同的三维扫描设备获取的,因此可能具有不同的精度,并且是相互独立的数据集合。其中,原始模型数据通常包含模型的所有顶点、边、面以及顶点、边和面的邻接关系。
64.针对所述第一模型的原始模型数据、或所述第二模型的原始模型数据,执行:
65.步骤1012、从原始模型数据中,查找出原始边界特征数据,所述原始边界数据包括原始边界边和原始边界顶点。
66.本技术实施时,可以对原始模型数据中包含的所有边数据和邻接关系中进行遍历,查找出所有的边界边,也即有且只被一个三角形面包含的边。示例性的,可以基于以下公式1进行遍历:
[0067][0068]
其中,e
boundary
表示边界边,n1表示原始模型数据中包含的边的数量,e
i1
表示第i1个边。
[0069]
进一步的,本技术实施时,可以对前述得到的边界边进行遍历,查找出所有的边界顶点,也即属于边界边的顶点。示例性的,可以基于以下公式2进行遍历:
[0070][0071]
其中,v
boundray
表示边界顶点,n2表示原始模型数据中包含的顶点的数量,v
i2
表示第i2个顶点。
[0072]
参阅图4,为本技术实施例提供的一种第二模型上的边界顶点和边界边的示意图。以第二模型(躯干模型)作为示例,通过步骤1011处理之后,可以从第二模型的原始模型数据中,查找出所有的边界顶点和边界边,从而可以用以在以下处理过程中,结合第一模型的边界顶点和边界边,构建第一模型和第二模型待拼接处的三角形。其中,图4中两个边界顶点之间的边即为边界边。
[0073]
步骤1013、将所述原始边界顶点按照空间位置进行排序,得到原始排序结果。
[0074]
一种可能的实施例中,本技术可以采用最小二乘法对边界顶点进行拟合,得到拟合平面。也即计算距离所有边界顶点最近的平面作为投影平面。假设拟合平面可以通过来表示,其中,表示拟合平面的法向量,d可以表示原点到拟合平面的距离。以及,本技术还可以构建在所述拟合平面上的预设坐标系。例如,若预设坐标系为直角坐标系,则可以得到坐标轴x
local
和y
local
;若预设坐标系为极坐标系,则可以得到极点、极轴和极径。以下实施例中,以直角坐标系作为示例进行介绍。
[0075]
本技术实施时,首先可以确定各边界顶点在所述拟合平面上的投影边界顶点。示例性的,投影边界顶点可以通过以下公式3得到:
[0076][0077]
其中,v
boundray_prj
表示投影边界顶点,n3表示原始模型数据中包含的边界顶点的数量,v
i3
表示第i3个边界顶点。
[0078]
其次,计算各所述投影边界顶点与所述预设坐标系之间的全局角度值。示例性的,在直角坐标系下,全局角度值可以通过投影边界顶点与横坐标、纵坐标分别的角度值来确
定。例如,角度值可以通过以下公式4a和公式4b得到:
[0079][0080]
其中,angle
x
表示投影边界顶点与横坐标之间的角度值,v
center
表示拟合平面p上的中心点。
[0081][0082]
其中,angley表示投影边界顶点与纵坐标之间的角度值。
[0083]
进一步的,若采用直角坐标系的实现方式,本技术实施时可以根据投影边界顶点的angle
x
、angley以及所在的象限,将(angle
x
,angley)转化为[0,360
°
]的全局角度值,从而便于对投影边界顶点进行排序。应理解,在极坐标系下,则可以直接根据得到极角值作为投影边界顶点的全局角度值。
[0084]
然后,本技术实施时可以根据所述全局角度值,对各所述投影边界顶点按照空间位置进行排序。一种可选的实施例中,可以按照全局角度值从小到大的顺序,对各所述投影边界顶点进行排序,也即采用逆时针方向进行排序。另一种可选的实施例中,还可以按照全局角度值从大到小的顺序,对各所述投影边界顶点进行排序,也即采用顺时针方向进行排序。
[0085]
步骤1014、基于所述原始排序结果和所述原始边界边,若确定三个连续的原始边界顶点及其对应的原始边界边之间的夹角小于预设夹角阈值(例如可以为135
°
),则根据所述三个连续的原始边界顶点及其对应的原始边界边,添加新的边界边,以构造成新的三角形。参阅图5,为本技术实施例提供的添加新的边界边的示意图。例如,存在连续的三个边界顶点p0、p1和p2,组成的∠p0p1p2小于135
°
,则在原始模型数据中,添加一个新的三角形(p0,p1,p2)。这样,相当于间接消除了边界顶点p1,从而可以达到平滑边界轮廓线的效果,以避免三维模型中的三角形自相交或者退化问题的发生。
[0086]
参阅图6,为本技术实施例提供的一种第二模型平滑前和平滑后的模型示意图。从图6中的(a)可以得到,第二模型进行平滑处理之前的边界轮廓线中,多组相邻的三个边界顶点构成了多个近似直角的边角,从而导致整个边界轮廓线显示十分不平滑,进而可能导致拼接过程中的三角形自相交和退化问题的发生。而从图6中的(b)可以得到,第二模型进行平滑处理之后的边界轮廓线中,对存在多个近似直角的边角问题进行了较好得消除,从而得到了较为平滑的边界轮廓线,从而可以提升拼接的准确性,以及保证纹理贴图之后的显示效果。并且,通过以上介绍到的内容,可以得到采用本技术提供的方法,不会增加新的顶点,也不会删除原有顶点,因此不会改变原有模型中的邻接关系,也即可以保持原有模型的拓扑不变。
[0087]
步骤1015、将所述新的边界边作为所述原始模型数据。可以理解,若将新的边界边也作为原始模型数据,则第一模型和第二模型可以具有新的边界边和边界顶点。
[0088]
此外,在以上介绍到的内容中,第一模型的原始模型数据和第二模型的原始模型数据是分别进行的处理,为了实现对第一模型和第二模型的拼接,本技术实施时可以将第一模型的原始模型数据和第二模型的原始模型数据进行融合处理,得到融合之后的全局索引模型数据。进而,可以将所述全局索引模型数据作为所述第一模型和第二模型的模型数据。例如,假设第一模型的顶点数目为numa,第二模型的顶点数目为numb,若以第一模型为基
准模型,将第二模型拼接到第一模型上,则第二模型的原始模型数据中的顶点数据在融合之后得到的全局索引模型数据中的表示可以为以下公式5:
[0089]
indexg=i5+ numa,i5∈[1,numb]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
公式5
[0090]
其中,indexg表示全局索引模型数据,i5表示第二模型的原始模型数据。例如,若第一模型的顶点数目numa为100,第二模型的顶点数目numb为50,在将第二模型拼接到第一模型的场景下,第一模型的顶点数据在全局索引模型数据中的索引表示可以为1~100,则第二模型的顶点数据在全局索引模型数据中的索引可以表示为101~150。同理,第一模型的边数据、面数据也可以采用上述方式进行融合处理,从而得到全局索引模型数据,也即第一模型和第二模型的模型数据。
[0091]
一种可能的实施例中,基于以上实施例中对第一模型的原始模型数据和第二模型的原始模型数据进行处理之后,得到的第一模型和第二模型的模型数据。本技术实施时,以第一模型和第二模型的模型数据作为基于几何的三维模型拼接的输入信息进行拼接处理。为实现拼接处理,从第一模型和第二模型的模型数据中,查找第一模型的边界特征数据和第二模型的边界特征数据,所述边界特征数据包括边界边和边界顶点。具体实施方式可以参阅上述实施例中的步骤1012中介绍的实现方式,也即采用遍历的方式查找出属于边界特征的数据。可以理解,若实际实施时,对第一模型的原始模型数据和/或第二模型的原始模型数据进行了平滑处理,此时查找出的边界特征数据为平滑处理之后的边界特征数据,不一定为第一模型或第二模型的原始边界数据。
[0092]
步骤102、将第一模型的边界顶点和第二模型的边界顶点按照空间位置分别进行相同方向的排序,得到排序结果。
[0093]
本技术实施时,可以参照步骤1013示出的排序方式,对基于步骤102中查找出的边界特征数据中的边界顶点进行排序。其中,为了实现第一模型和第二模型更为准确的拼接,可按照空间位置分别进行逆时针方向的排序,或者分别进行顺时针方向的排序。换言之,通过对第一模型或第二模型的边界顶点的排序,结合边界边可以得到第一模型或第二模型的边界轮廓线。其中,边界轮廓线是由边界顶点和边界边组成的。
[0094]
步骤103、根据所述排序结果,从相对距离小于预设距离的至少一组边界顶点对中,选择目标边界顶点对;其中,所述边界顶点对中包含的两个边界顶点分别属于所述第一模型和所述第二模型。
[0095]
一种可选的实施例中,针对第一模型的第一边界顶点,执行:从第二模型的边界顶点中,确定与所述第一边界顶点距离最小的第二边界顶点;以及,从第一模型的边界顶点中,确定与所述第二边界顶点距离最小的第三边界顶点;若所述第三边界顶点为所述第一边界顶点,则确定所述第一边界顶点和所述第二边界顶点为一个边界顶点对;其中,所述第一边界顶点为所述第一模型的边界顶点中的任一边界顶点。例如,针对第一模型上的边界顶点p3,在第二模型的边界轮廓线上距离最小的边界顶点为p4;以及,针对第二模型上的边界顶点p4,在第一模型的边界轮廓线上距离最小的边界顶点也为p3,则可以确定p3和p4属于一组边界顶点对;而若针对p4,若在第一模型的边界轮廓线上距离最小的边界顶点不为p3、假设为p5,则可以认为p3和p4不属于一组边界顶点对。通过以上实施例,可以得到在第一模型的边界轮廓线和第二模型的边界轮廓线上的一组或多组边界顶点对,也即边界顶点对中的两个边界顶点互为最短距离。
[0096]
基于上述实施例,从相对距离小于预设距离的至少一组边界顶点对中,选择目标边界顶点对可实施为,在所述至少一组边界顶点对中,选择相对距离最小的边界顶点对作为所述目标边界顶点对。例如,假设存在两组边界顶点对,边界顶点对1和边界顶点对2,其中边界顶点对1的相对距离小于边界顶点对2的相对距离,则可以将边界顶点对1选择为目标边界顶点对。并且,若目标边界顶点对中包含的两个边界顶点为p3和p4,其中p3属于第一模型、p4属于第二模型,则将边界顶点p3作为第一模型的边界顶点的排序结果中的起始边界顶点;同理,将边界顶点p4作为第二模型的边界顶点的排序结果中的起始边界顶点。示例性的,排序结果可以通过队列的形式来表示,或者通过其他形式来表示,本技术对此不进行限定。
[0097]
步骤104、以所述目标边界顶点对为起点,基于所述排序结果、第一模型的边界边和第二模型的边界边,在所述第一模型和所述第二模型之间依次构建三角形,得到目标三维模型。
[0098]
一种可选的实施例中,参阅图7,为本技术实施例提供的构建三角形的流程示意图。在所述第一模型和所述第二模型之间依次构建三角形,可实施为以下步骤:
[0099]
步骤1041、确定第一模型的边界顶点集合和第二模型的边界顶点集合不全为空。若确定第一模型的边界顶点集合和第二模型的边界顶点集合全为空,则可以确定第一模型与第二模型之间的三角形构建已经完成,进而结束构建三角形的流程。相反,若确定第一模型的边界顶点集合和第二模型的边界顶点集合中存在非空集合,则继续执行步骤1042。
[0100]
步骤1042、确定是否构造第一类三角形。其中,所述第一类三角形表示从所述第一模型的边界顶点集合选取一个边界顶点、以及从所述第二模型的边界顶点集合选取两个边界顶点来构造三角形。并且,若所述第一模型的边界顶点集合为空,则选取所述第一模型的边界顶点集合中的最后一个边界顶点。
[0101]
一种可选的实施例中,若确定第一模型的边界顶点集合为空,则可以确定需要构造第一类三角形。可以理解,此时第一模型的边界顶点已经全被使用,而第二模型的边界顶点集合非空,则只能强制构造第一类三角形,以实现基于第二模型的边界顶点集合中的剩余边界顶点,进行三角形的构造。
[0102]
进一步的,若确定构造第一类三角形,则可以继续执行步骤1042a;若确定不构造第一类三角形,则可以继续执行步骤1043。
[0103]
步骤1042a:构造第一类三角形。
[0104]
本技术实施时,为了保证构建完三角形之后,得到的目标三维模型的准确性以及目标对象的显示效果,需要进行三角形是否存在自相交或者退化等问题。其中,三角形自相交表示存在两个三角形面之间存在交叉或交集。三角形退化表示三角形的面积接近于零。
[0105]
参阅图8,为本技术实施例提供的构建第一类三角形之后的检查流程示意图。包括:
[0106]
步骤1042a-1:确定所述第一类三角形与所述目标模型中已构造的三角形是否自相交。若否,都继续执行步骤1042a-2;若是,则继续执行步骤1042a-6。
[0107]
步骤1042a-2:确定所述第一类三角形与所述目标模型中已构造的三角形是否退化。若是,都继续执行步骤1042a-3;若否,则继续执行步骤1042a-4。
[0108]
步骤1042a-3:若确定所述第一类三角形与所述目标模型中已构造的三角形退化,
则判断构造所述第二类三角形是否退化。若是,都继续执行步骤1042a-6;若否,则继续执行步骤1042a-5。
[0109]
步骤1042a-4:构造第一类三角形。
[0110]
步骤1042a-5:构造第二类三角形。
[0111]
步骤1042a-6:构造第三类三角形。其中,所述第三类三角形表示从所述第二模型的边界顶点集合选取三个边界顶点来构造三角形。可以理解,第三类三角形相当于为第二模型的轮廓线三角形,可以达到减少第二模型的边界轮廓线上的边界顶点的目的,从而可以较好地避免或解决三角形的自相交或退化问题。
[0112]
需要说明的是,由于构造第三类三角形需要从第二模型的边界顶点上选取三个连续的边界顶点,如果第二模型的剩余边界顶点的数据不足以构造第三类三角形(也即数量少于3个),则可以在第一模型的边界顶点集合不为空时,构造第二类三角形;或者,还可以在第一模型的边界顶点集合为空时,构造第一类三角形;或者,根据实际情况来构造第一类三角形或者第二类三角形。
[0113]
步骤1043、若确定不构造所述第一类三角形,确定是否构造第二类三角形。其中,所述第二类三角形表示从所述第一模型的边界顶点集合选取两个边界顶点、以及从所述第二模型的边界顶点集合选取一个边界顶点来构造三角形。并且,若所述第二模型的边界顶点集合为空,则选取所述第二模型的边界顶点集合中的最后一个边界顶点。
[0114]
一种可选的实施例中,若确定第二模型的边界顶点集合为空,则可以确定需要构造第一类三角形。可以理解,此时第二模型的边界顶点已经全被使用,而第一模型的边界顶点集合非空,则只能强制构造第二类三角形,以实现基于第一模型的边界顶点集合中的剩余边界顶点,进行三角形的构造。
[0115]
进一步的,若确定构造第二类三角形,则可以继续执行步骤1043a;若确定不构造第二类三角形,则可以继续执行步骤1044。
[0116]
步骤1043a:构造第二类三角形。
[0117]
与图8示出的内容同理,本技术实施时,为了保证构建完三角形之后,得到的目标三维模型的准确性以及目标对象的显示效果,需要进行三角形是否存在自相交或者退化等问题。参阅图9,为本技术实施例提供的构建第二类三角形之后的检查流程示意图。包括:
[0118]
步骤1043a-1:确定所述第二类三角形与所述目标模型中已构造的三角形是否自相交。若否,都继续执行步骤1043a-2;若是,则继续执行步骤1043a-6。
[0119]
步骤1043a-2:确定所述第二类三角形与所述目标模型中已构造的三角形是否退化。若是,都继续执行步骤1043a-3;若否,则继续执行步骤1043a-4。
[0120]
步骤1043a-3:若确定所述第二类三角形与所述目标模型中已构造的三角形退化,则判断构造所述第一类三角形是否退化。若是,都继续执行步骤1043a-6;若否,则继续执行步骤1043a-5。
[0121]
步骤1043a-4:构造第二类三角形。
[0122]
步骤1043a-5:构造第一类三角形。
[0123]
步骤1043a-6:构造第四类三角形。其中,所述第四类三角形表示从所述第一模型的边界顶点集合选取三个边界顶点来构造三角形。可以理解,第四类三角形相当于为第一模型的轮廓线三角形,可以达到减少第一模型的边界轮廓线上的边界顶点的目的,从而可
以较好地避免或解决三角形的自相交或退化问题。
[0124]
需要说明的是,由于构造第四类三角形需要从第二模型的边界顶点上选取三个连续的边界顶点,如果第一模型的剩余边界顶点的数据不足以构造第四类三角形(也即数量少于3个),则可以在第二模型的边界顶点集合不为空时,构造第一类三角形;或者,还可以在第二模型的边界顶点集合为空时,构造第二类三角形;或者,根据实际情况来构造第一类三角形或者第二类三角形。
[0125]
步骤1044、若确定不构造所述第二类三角形,根据所述第一模型的第一使用比率和所述第二模型的第二使用比率,在所述第一模型和所述第二模型之间依次构建三角形。
[0126]
其中,所述第一使用比率或所述第二使用比率为已使用的边界边与总边界边的长度比率或数量比率、或为已使用边界顶点与总边界顶点的数量比率。
[0127]
本技术实施时,若所述第一使用比率大于或等于所述第二使用比率,则确定构造所述第一类三角形;若所述第一使用比率小于所述第二使用比率,则确定构造所述第二类三角形。例如,若第一模型的总边界边长度为100,第二模型的总边界边长度也为100;以及,第一模型的已使用的边界边的长度为50,第二模型的已使用的边界边的长度为40,由于第一使用比率大于第二使用比率,则从第二模型上选择两个边界顶点来构造三角形(也即第一类三角形),以便于推进第二模型的边界边长度。可以理解,由于第一模型与第二模型的不同,各自的边界边的长度可能存在各种各样的长度,从而可能会导致使用比率的差异。
[0128]
步骤1045、将构建三角形之后所采用的第一模型的边界顶点从所述第一模型的边界顶点集合中删除,以及所采用的第二模型的边界顶点从所述第二模型的边界顶点集合中删除。本技术实施时,如果第一模型的边界顶点或者第二模型的边界顶点,在构建三角形的过程中被使用,则可以将第一模型的边界轮廓线或第二模型的边界轮廓线进行推进;并且,根据已经推进的边界轮廓线和总边界轮廓线,来确定使用比率。
[0129]
步骤105、对所述目标三维模型进行纹理贴图后,得到所述目标对象。可选的,可以基于对第一模型进行纹理贴图得到的第一对象所对应的第一纹理贴图,以及基于对第二模型进行纹理贴图得到的第二对象所对应的第二纹理贴图,可以复用于进行对目标三维模型的纹理贴图。参阅图10,为本技术实施例提供的一种目标模型的模型示意图。从图10中,可以得到,在第一模型和第二模型之间通过构建三角形,在不增加顶点的基础上,可以实现对第一模型和第二模型的拼接,从而可以保证参与拼接融合的待拼接模型的拓扑不变,从而可以提高三维模型拼接的准确性和效果,并且可以保证待拼接模型的原有纹理贴图可以在新的三维模型上进行复用。
[0130]
参阅图11,为本技术实施例提供的一种目标对象的示例图。从图11中可以看到,目标对象是由第一对象和第二对象,以及第一对象与第二对象之间的拼接区域(如图中的深色区域)得到的。这样,由于目标对象对应的目标三维模型的拓扑不变,因此,可以保证对目标三维模型进行纹理贴图之后得到的目标对象的显示效果。
[0131]
基于同样的构思,本技术实施例提供一种基于几何的三维模型拼接装置的示意图,如图12所示,该装置包括:查找模块1201,用于从第一模型和第二模型的模型数据中,查找第一模型的边界特征数据和第二模型的边界特征数据,所述边界特征数据包括边界边和边界顶点;其中,所述第一模型为第一对象的几何模型,所述第二模型为第二对象的几何模型,所述第一对象和所述第二对象组成目标对象;排序模块1202,用于将第一模型的边界顶
点和第二模型的边界顶点按照空间位置分别进行相同方向的排序,得到排序结果;选择模块1203,用于根据所述排序结果,从相对距离小于预设距离的至少一组边界顶点对中,选择目标边界顶点对;其中,所述边界顶点对中包含的两个边界顶点分别属于所述第一模型和所述第二模型;拼接模块1204,用于以所述目标边界顶点对为起点,基于所述排序结果、第一模型的边界边和第二模型的边界边,在所述第一模型和所述第二模型之间依次构建三角形,得到目标三维模型;贴图模块1205,用于对所述目标三维模型进行纹理贴图后,得到所述目标对象。
[0132]
一种可选的实施例中,所述装置还包括:融合模块;所述融合模块,用于从第一模型和第二模型的模型数据中,查找第一模型的边界特征数据和第二模型的边界特征数据之前,具体用于:获取第一模型的原始模型数据和第二模型的原始模型数据;将所述第一模型的原始模型数据和第二模型的原始模型数据进行融合处理,得到融合之后的全局索引模型数据;将所述全局索引模型数据作为所述第一模型和第二模型的模型数据。
[0133]
一种可选的实施例中,所述装置还包括:平滑模块;所述平滑模块,用于获取第一模型的原始模型数据和第二模型的原始模型数据之后,具体用于:针对所述第一模型的原始模型数据、或所述第二模型的原始模型数据,执行:从原始模型数据中,查找出原始边界特征数据,所述原始边界数据包括原始边界边和原始边界顶点;将所述原始边界顶点按照空间位置进行排序,得到原始排序结果;基于所述原始排序结果和所述原始边界边,若确定三个连续的原始边界顶点及其对应的原始边界边之间的夹角小于预设夹角阈值,则根据所述三个连续的原始边界顶点及其对应的原始边界边,添加新的边界边,以构造成新的三角形;将所述新的边界边作为所述原始模型数据。
[0134]
一种可选的实施例中,所述排序模块1202,用于将边界顶点按照空间位置进行排序时,具体用于:采用最小二乘法对边界顶点进行拟合,得到拟合平面;以及,构建在所述拟合平面上的预设坐标系;确定各边界顶点在所述拟合平面上的投影边界顶点;计算各所述投影边界顶点与所述预设坐标系之间的全局角度值;根据所述全局角度值,对各所述投影边界顶点按照空间位置进行排序。
[0135]
一种可选的实施例中,所述选择模块1203,用于从相对距离小于预设距离的至少一组边界顶点对中,选择目标边界顶点对时,具体用于:针对第一模型的第一边界顶点,执行:从第二模型的边界顶点中,确定与所述第一边界顶点距离最小的第二边界顶点;以及,从第一模型的边界顶点中,确定与所述第二边界顶点距离最小的第三边界顶点;若所述第三边界顶点为所述第一边界顶点,则确定所述第一边界顶点和所述第二边界顶点为一个边界顶点对;其中,所述第一边界顶点为所述第一模型的边界顶点中的任一边界顶点;在所述至少一组边界顶点对中,选择相对距离最小的边界顶点对作为所述目标边界顶点对。
[0136]
一种可选的实施例中,所述拼接模块1204,用于以所述目标边界顶点对为起点,基于所述排序结果、第一模型的边界边和第二模型的边界边,在所述第一模型和所述第二模型之间依次构建三角形时,具体用于:若确定第一模型的边界顶点集合和第二模型的边界顶点集合不全为空,确定是否构造第一类三角形;其中,所述第一类三角形表示从所述第一模型的边界顶点集合选取一个边界顶点、以及从所述第二模型的边界顶点集合选取两个边界顶点来构造三角形;若所述第一模型的边界顶点集合为空,则选取所述第一模型的边界顶点集合中的最后一个边界顶点;若确定不构造所述第一类三角形,确定是否构造第二类
三角形;其中,所述第二类三角形表示从所述第一模型的边界顶点集合选取两个边界顶点、以及从所述第二模型的边界顶点集合选取一个边界顶点来构造三角形;若所述第二模型的边界顶点集合为空,则选取所述第二模型的边界顶点集合中的最后一个边界顶点;若确定不构造所述第二类三角形,根据所述第一模型的第一使用比率和所述第二模型的第二使用比率,在所述第一模型和所述第二模型之间依次构建三角形;其中,所述第一使用比率或所述第二使用比率为已使用的边界边与总边界边的长度比率或数量比率、或为已使用边界顶点与总边界顶点的数量比率;将构建三角形之后所采用的第一模型的边界顶点从所述第一模型的边界顶点集合中删除,以及所采用的第二模型的边界顶点从所述第二模型的边界顶点集合中删除。
[0137]
一种可选的实施例中,所述拼接模块1204,用于根据所述第一模型的第一使用比率和所述第二模型的第二使用比率,在所述第一模型和所述第二模型之间依次构建三角形时,具体用于:若所述第一使用比率大于或等于所述第二使用比率,则确定构造所述第一类三角形;若所述第一使用比率小于所述第二使用比率,则确定构造所述第二类三角形。
[0138]
一种可选的实施例中,所述装置还包括:检查模块;所述检查模块,用于确定构造第一类三角形之后,具体用于:若确定所述第一类三角形与所述目标模型中已构造的三角形自相交,则构造第三类三角形;其中,所述第三类三角形表示从所述第二模型的边界顶点集合选取三个边界顶点来构造三角形;若确定所述第一类三角形与所述目标模型中已构造的三角形退化,则判断构造所述第二类三角形是否退化;若退化,则构造所述第三类三角形,否则构造所述第二类三角形。
[0139]
一种可选的实施例中,所述装置还包括:检查模块;所述检查模块,用于确定构造第二类三角形之后,具体用于:若确定所述第二类三角形与所述目标模型中已构造的三角形自相交,则构造第四类三角形;其中,所述第四类三角形表示从所述第一模型的边界顶点集合选取三个边界顶点来构造三角形;若确定所述第二类三角形与所述目标模型中已构造的三角形退化,则判断构造所述第一类三角形是否退化;若退化,则构造所述第四类三角形,否则构造所述第一类三角形。
[0140]
本技术实施例还提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(personal digital assistant,pda)等。该计算设备可以包括中央处理器(center processing unit,cpu)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(liquid crystal display,lcd)、阴极射线管(cathode ray tube,crt)等。
[0141]
存储器,可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器提供存储器中存储的程序指令和数据。在本技术实施例中,存储器可以用于存储基于几何的三维模型拼接方法的程序指令;
[0142]
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行基于几何的三维模型拼接方法。
[0143]
如图13所示,为本技术实施例提供的一种计算设备的示意图,该计算设备包括:
[0144]
处理器1301、存储器1302、收发器1303、总线接口1304;其中,处理器1301、存储器1302与收发器1303之间通过总线1305连接;
[0145]
所述处理器1301,用于读取所述存储器1302中的程序,执行上述基于几何的三维
模型拼接方法;
[0146]
处理器1301可以是中央处理器(central processing unit,简称cpu),网络处理器(network processor,简称np)或者cpu和np的组合。还可以是硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,简称asic),可编程逻辑器件(programmable logic device,简称pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,简称cpld),现场可编程逻辑门阵列(field-programmable gate array,简称fpga),通用阵列逻辑(generic array logic,简称gal)或其任意组合。
[0147]
所述存储器1302,用于存储一个或多个可执行程序,可以存储所述处理器1301在执行操作时所使用的数据。
[0148]
具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器1302可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,简称ram);存储器1302也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,简称hdd)或固态硬盘(solid-state drive,简称ssd);存储器1302还可以包括上述种类的存储器的组合。
[0149]
存储器1302存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
[0150]
操作指令:包括各种操作指令,用于实现各种操作。
[0151]
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
[0152]
总线1305可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0153]
总线接口1304可以为有线通信接入口,无线总线接口或其组合,其中,有线总线接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线总线接口可以为wlan接口。
[0154]
本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行基于几何的三维模型拼接方法。
[0155]
本领域内的技术人员应明白,本技术的实施例可提供为方法、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0156]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0157]
尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
[0158]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1