CN102737407A - 三角网格数据的拟合优化的方法及其系统 - Google Patents
三角网格数据的拟合优化的方法及其系统 Download PDFInfo
- Publication number
- CN102737407A CN102737407A CN201210163433XA CN201210163433A CN102737407A CN 102737407 A CN102737407 A CN 102737407A CN 201210163433X A CN201210163433X A CN 201210163433XA CN 201210163433 A CN201210163433 A CN 201210163433A CN 102737407 A CN102737407 A CN 102737407A
- Authority
- CN
- China
- Prior art keywords
- array
- triangle
- dimensional model
- match
- summit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明适用于几何建模领域,提供了一种三角网格数据的拟合优化的方法及其系统,所述方法包括:A、根据在原三维模型上选择的三维模型区域的形状特征拟合形函数;B、根据所述形函数生成优化的拟合三角网格;C、将所述拟合三角网格拼接回所述原三维模型的三角网格中。借此,本发明实现了对选择的三维模型区域进行拟合优化。
Description
技术领域
本发明涉及几何建模领域,尤其涉及一种三角网格数据的拟合优化的方法及其系统。
背景技术
三维几何模型分为线框模型、表面模型和实体模型三种,其中表面模型运用最为广泛,三角网格数据是表面模型的一种常用形式。现有的几何建模软件FreeForm和Auto 123D提供三维几何造型功能,但需要用户手工勾划出造型的轨迹和预期形状,该方法的缺点是:
1)不能达到平滑和优化效果,不能保证三维模型的拓扑正确性。
2)不能处理表面有空洞的情况。
3)对复杂凸起凹陷要反复处理。
专利申请号为CN201010610301,发明名称为“一种三维模型局部匹配方法”的中国发明专利公开了一种三维模型局部匹配方法,该方法根据弯曲显著度生成排序列表并进行区域增长,形成一个局部顶点集合,在该集合上进行二次曲面拟合,将拟合区域标识为三维模型局部子块并提取特征,然后先后对三维模型局部子块的特征比较和局部匹配,对三维模型全局特征比较和全局匹配。该方法主要运用于三维模型的匹配和检索,但不涉及对三维模型的优化、平滑等编辑操作。
综上可知,现有的三维模型的拟合优化技术在实际使用上,显然存在不便与缺陷,所以有必要加以改进。
发明内容
针对上述的缺陷,本发明的目的在于提供一种三角网格数据的拟合优化的方法及其系统,以对选择的三维模型区域进行拟合优化。
为了实现上述目的,本发明提供一种三角网格数据的拟合优化的方法,所述方法包括:
A、根据在原三维模型上选择的三维模型区域的形状特征拟合形函数;
B、根据所述形函数生成优化的拟合三角网格;
C、将所述拟合三角网格拼接回所述原三维模型的三角网格中。
根据所述的方法,在所述步骤A之前包括:
D、选择所述原三维模型上需要进行拟合优化的三维模型区域。
根据所述的方法,所述步骤A包括:
A1、分别获取所述原三维模型的三角网格中的每个三角形的第一顶点数组、第一三角形数组以及第一相邻关系数组;
A2、构建第二顶点数组、第二三角形数组以及第二相邻关系数组,以表示所述选择的三维模型区域的三角网格;
A3、标记所述选择的三维模型区域的三角网格的第二三角形数组中的边界边,将所述第二三角形数组中共享顶点的边界边连接,构成不同的集合,并提取所有所述集合中最大的首尾相连的集合作为所述选择的三维模型区域的外边界;
A4、提取所述外边界边上的所有顶点坐标,并采用移动最小二乘法拟合出一个平面,根据平面法向量与世界坐标系任一坐标轴方向的夹角计算映射矩阵;
A5、将所述选择的三维模型区域的第二顶点数组乘以所述映射矩阵,并投影到所述平面,由所述外边界开始在对应的方向以特定步长向内采样,得到样本点矩阵;
A6、使用移动最小二乘法计算形函数。
根据所述的方法,所述步骤A1包括:
A12、使用线性浮点型数组保存所述原三维模型的三角网格中的每个三角形的顶点坐标,获得所述三角网格的第一顶点数组;
A13、使用线性整数型数组保存所述原三维模型的三角网格的顶点索引,获得所述三角网格的第一三角形数组;
A14、使用二维整型数组保存所述原三维模型的三角网格中的每个三角形的顶点所属的三角形索引,获得所述三角网格的第一相邻关系数组。
根据所述的方法,所述步骤A2包括:
A21、在所述选择的三维模型区域内的三角网格中任取一个三角形作为种子三角形;
A22、根据所述原三维模型的三角网格的相邻关系,以所述种子三角形为起始作阈值连通搜索,获得所述选择的三维模型区域的第二顶点数组、第二三角形数组,以及第二相邻关系数组;
A23、将所述选择的三维模型区域的第二顶点数组、第二三角形数组以及第二相邻关系数组写入所述选择的三维模型区域的三角网格的相应的数组中,并且在所述原三维模型的三角网格中将所述种子三角形标记为应删除状态;
在所述步骤A5中,所述向内采样的特定步长为一个限定的浮点数值;或者为与所述选择的三维模型区域相关的自适应浮点数值。
根据所述的方法,所述步骤B包括:
B1、构建第三顶点数组、第三三角形数组和第三相邻关系数组,以表示拟合获得的拟合三角网格;
B2、按照所述特定步长提取所述选择的三维模型区域的对应坐标的值,并根据所述形函数计算世界坐标系中的另一值,获得拟合点矩阵的坐标;
B3、将所述拟合点矩阵作为三角化算法的输入,跟踪所述外界边的顶点顺序,并将外边界作为所述三角化算法的边界约束;
B4、使用所述三角化算法计算所述拟合三角网格的拓扑结构,并将所述拓扑结构写入所述第三三角形数组中。
根据所述的方法,在所述步骤A4中,若所述任一坐标方向为Z轴,则在所述步骤A5中所述对应的方向为X、Y方向;在所述步骤B2中,提供的所述对应坐标的值为提取X、Y方向的值,所述形函数计算世界坐标系中的另一值为Z方向的值;或者
在所述步骤A4中,若所述任一坐标方向为X轴,则在所述步骤A5中所述对应的方向为Z、Y方向;在所述步骤B2中,提供的所述对应坐标的值为提取Z、Y方向的值,所述形函数计算世界坐标系中的另一值为X方向的值;或者
在所述步骤A4中,若所述任一坐标方向为Y轴,则在所述步骤A5中所述对应的方向为X、Z方向;在所述步骤B2中,提供的所述对应坐标的值为提取X、Z方向的值,所述形函数计算世界坐标系中的另一值为Y方向的值。
根据所述的方法,所述步骤C包括:
C1、构建第四顶点数组、第四三角形数组和第四相邻关系数组,以表示将所述拟合三角网格拼接回所述原三维模型的三角网格后的三角网格;
C2、将所述拟合三角网格的第三顶点数组乘以映射矩阵的逆矩阵,并映射回到所述原三维模型的三角网格所在的世界坐标系;
C3、将所述原三维模型的三角网格中未标记为应删除状态的三角形和所述拟合三角网格以顶点不重合的方式对应写入所述第四顶点数组、第四三角形数组和第四相邻关系数组中。
根据所述的方法,所述步骤C3中,以顶点不重合的方式包括:在插入新顶点时,首先检查所述对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中是否存在重合点,若存在则返回所述顶点索引;若不存在则作为新坐标插入对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中;
所述检查对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中是否存在重合点的方式包括遍历所有对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中的顶点坐标,或者以空间划分或者分叉树的方式查询相邻顶点。
为了实现本发明的另一发明目的,本发明还提供了一种用于实现上述任一项所述的三角网格数据的拟合优化的方法的系统,所述系统包括:
函数生成模块,用于根据在原三维模型上选择的三维模型区域的形状特征拟合形函数;
拟合模块,用于根据所述形函数生成优化的拟合三角网格;
拼接模块,用于将所述拟合三角网格拼接回所述原三维模型的三角网格中。
本发明通过根据在原三维模型上选择的三维模型区域的形状特征拟合形函数;然后根据所述形函数生成优化的拟合三角网格;最后将所述拟合三角网格拼接回所述原三维模型的三角网格中。实现了对选择的三维模型区域进行拟合优化。保证了拟合三角网格的拓扑正确性,并具有平滑均匀的特点;最后将生成的拟合三角网格拼接回原三角网格,实现了自动造型功能。可以对质量不好的三角网格数据做平滑优化,也可以对表面空洞修补,还可用于表面复杂凸起凹陷的去除,提供了三维几何模型处理领域的模型优化方法和系统。
附图说明
图1是本发明第一实施例提供的三角网格数据的拟合优化的系统的结构示意图;
图2是本发明第二实施例提供的三角网格数据的拟合优化的方法流程图;
图3A是本发明的一个实施例提供的肝脏三维模型在进行修补空洞前的示意图;
图3B是本发明的一个实施例提供的肝脏三维模型在进行修补空洞后的示意图;
图4A是本发明的一个实施例提供的肝脏三维模型在进行凸起凹陷去除前的示意图;
图4B是本发明的一个实施例提供的肝脏三维模型在进行凸起凹陷去除后的示意图;
图5A是本发明的一个实施例提供的肝脏三维模型在进行平滑前的示意图;
图5B是本发明的一个实施例提供的肝脏三维模型在进行平滑后的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,在本发明的第一实施例中提供了一种三角网格数据的拟合优化的系统100,包括:
函数生成模块10,用于根据在原三维模型上选择的三维模型区域的形状特征拟合形函数;
拟合模块20,用于根据所述形函数生成优化的拟合三角网格;
拼接模块30,用于将所述拟合三角网格拼接回所述原三维模型的三角网格中。
在该实施例中,函数生成模块10根据选中的三维模型区域的形状特征自动拟合形函数可以在一次处理中就实现复杂凸起凹陷的去除,拟合模块20根据形函数生成优化的表面三角网格,最后拼接模块30将拟合优化后的三维模型拼接回原三维模型的三角网格中,实现了平滑和优化效果,并实现了表面空洞修补;修正三维模型拓扑歧义。因此,通过函数生成模块10根据在原三维模型上选择的三维模型区域的形状特征拟合形函数,解决了根据选中的三维模型区域的形状特征自动拟合形函数的问题,接着通过拟合模块20根据所述形函数生成优化的拟合三角网格,解决了根据形函数生成优化的拟合三角网格的问题;最后拼接模块30将所述拟合三角网格拼接回所述原三维模型上的三角网格中,解决了将生成的拟合三角网格拼接回原三角网格并实现自动造型功能的问题。该系统可以是软件单元,硬件单元或软硬件结合单元;并且该系统既能用于几何模型表面的平滑去噪,也可以用于空洞修补或复杂凸起凹陷的去除。广泛的,该系统可运用于在3D游戏和动画,计算机辅助设计,数字医学等几何建模相关领域。
参见图2,在本发明的第二实施例中,提供了一种三角网格数据的拟合优化的方法,该方法采用上述的三角网格数据的拟合优化的系统100实现,所述方法包括:
步骤S201中,函数生成模块10根据在原三维模型上选择的三维模型区域的形状特征拟合形函数;
步骤S202中,拟合模块20根据所述形函数生成优化的拟合三角网格;
步骤S203中,拼接模块30将所述拟合三角网格拼接回所述原三维模型的三角网格中。
在该实施例中,选择的三维模型区域的形状特征包括如当前该三维模型区域有空洞、有凸起凹陷或者存在许多噪点等。函数生成模块10根据上述形状特征拟合形函数;然后,拟合模块20根据该形函数生成优化的拟合三角网格,实现对选择的三维模型区域修补空洞、平滑去噪以后去除凹陷等。最后,拼接模块30将所述拟合三角网格拼接回所述原三维模型的三角网格中,将拟合优化后的三维模型整体呈现。
在本发明的第三实施例中,在所述步骤S201之前包括:选择所述原三维模型上需要进行拟合优化的三维模型区域的步骤。该步骤可以通过一选择模块实现。在该步骤中,用户可以选择其需要进行拟合优化的三维模型的区域,具体的选择操作可以通过鼠标框选,或者输入选择参数实现。
在本发明的第四实施例中,所述步骤S201包括下述步骤:
A1、分别获取所述原三维模型的三角网格中的每个三角形的第一顶点数组、第一三角形数组以及第一相邻关系数组;
优选的,所述步骤A1包括:A12、使用线性浮点型数组保存所述原三维模型的三角网格中的每个三角形的顶点坐标,获得所述三角网格的第一顶点数组;A13、使用线性整数型数组保存所述原三维模型的三角网格的顶点索引,获得所述三角网格的第一三角形数组;A14、使用二维整型数组保存所述原三维模型的三角网格中的每个三角形的顶点所属的三角形索引,获得所述三角网格的第一相邻关系数组。
A2、构建第二顶点数组、第二三角形数组以及第二相邻关系数组,以表示所述选择的三维模型区域的三角网格;优选的,所述步骤A2包括:A21、在所述选择的三维模型区域内的三角网格中任取一个三角形作为种子三角形;A22、根据所述原三维模型的三角网格的相邻关系,以所述种子三角形作阈值连通搜索,获得所述选择的三维模型区域的第二顶点数组和第二三角形数组,以及第二相邻关系数组;A23、将所述选择的三维模型区域的第二顶点数组、第二三角形数组以及第二相邻关系数组写入所述选择的三维模型区域的三角网格的相应的数组中,并且在所述原三维模型的三角网格中将所述种子三角形标记为应删除状态。
A3、标记所述选择的三维模型区域的三角网格的第二三角形数组中的边界边,将所述第二三角形数组中共享顶点的边界边连接,构成不同的集合,并提取所有所述集合中最大的首尾相连的集合作为所述选择的三维模型区域的外边界;
A4、提取所述外边界边上的所有顶点坐标,并采用移动最小二乘法拟合出一个平面,根据平面法向量与世界坐标系任一坐标轴方向的夹角计算映射矩阵;
A5、将所述选择的三维模型区域的第二顶点数组乘以所述映射矩阵,并投影到所述平面,由所述外边界开始在对应的方向以特定步长向内采样,得到样本点矩阵;其中,所述向内采样的特定步长为一个限定值;或者为与所述选择的三维模型区域相关的自适应值;或者为整个所述选择的三维模型区域的不限定值。
A6、使用移动最小二乘法计算形函数。其中,移动最小二乘法的结果就是每一个坐标位置的形函数。
在该实施例中,在三角网格数据中,两点构成边,三条边按统一的顺时针或逆时针次序首尾相连构成三角形,相邻三角形以共享边的形式展开成为三角网格。并且具体的通过下述步骤实现所述步骤S201:
a)使用线性浮点型数组保存三角形的顶点坐标,每个顶点的x、y、z坐标分别占用连续的三个浮点数,该数组称为顶点数组;使用线性整型数组保存三角网格的顶点索引,每个三角形的顶点分别占用连续的三个整型数,成为一个拓扑单元,该数组称为三角形数组;使用二维整型数组保存顶点所属的三角形索引,其中每一行对于一个顶点的相应索引信息,该数组称为相邻关系数组。由此,可以获取原三维模型的三角网格中的每个三角形的第一顶点数组、第一三角形数组以及第一相邻关系数组。
b)构建第二顶点数组、第二三角形数组以及第二相邻关系数组,以表示所述选择的三维模型区域的三角网格。在选中的三维模型区域内任取一个三角形作为种子三角形,根据原三维模型的三角网格的相邻关系,以所述种子三角形作阈值连通搜索,获得选中的区域的顶点坐标、拓扑信息以及相邻关系信息,并将顶点坐标、拓扑信息以及相邻关系信息写入选中的三维模型区域的三角网格数据的相应数组中。同时在将选中的种子三角形标记为“应删除状态”。
c)遍历选中的三维模型区域的第二三角形数组,若该第二三角形数组中的三角形的某一条边没有被其他三角形共享,则该边是边界边,并将该边界边标记出来。在遍历结束后,搜索所有边界边,将共享顶点的边界边连接起来,构成不同的集合;并且取最大的首尾相连的集合作为选中的区域的外边界。
d)取外边界上的所有顶点坐标用最小二乘法拟合出一个平面,根据平面法向量与世界坐标系任一坐标轴方向的夹角计算映射矩阵。在该步骤中假定取z轴方向。若取x轴方向,则e步骤的x、y方向应该换为y、z方向,若取y轴方向,则e步骤的x、y方向应换为z、x方向。
e)将选中的三维模型区域三角网格的第二顶点数组乘与映射矩阵,投影到上述平面,由边界开始在x、y方向以特定步长向内采样,得到样本点矩阵。这里的特定步长既可以是一个根据经验设定固定的浮点数值,也可以是由选中的三维模型区域网格密度计算出来的一个自适应浮点数值。向内采样的步数可以是一个根据经验设定的限定整数值,也可以是一个与选中的三维模型区域三角网格的深度相关的自适应整数值,还可以不限定内采样步数而对整个选中区域全部采样完成。优选的,可以选择选择的三维模型区域的三角形边长的平均值。若仅仅作一定步数的采样,则拟合效果是用边界附近的表面形状来推测选中的三维模型区域其他部分的形状,能达到复杂凸起凹陷去除的目的,也可达到修补空洞的目的;若对整个选中区域采样,则能达到表面平滑的效果。采样的一种实现方法是从指定x、y值,z值为最大浮点数的点向z轴负向发射一条射线,计算该射线与选中的三维模型区域的三角网格的第一交点,取交点坐标的z值作为采样点的z值。
f)最后,使用移动最小二乘法计算形函数。
在本发明的第五实施例中,所述步骤S202包括:
B1、构建第三顶点数组、第三三角形数组和第三相邻关系数组,以表示拟合获得的拟合三角网格;
B2、按照所述特定步长提取所述选择的三维模型区域的对应坐标的值,并根据所述形函数计算世界坐标系中的另一值,获得拟合点矩阵的坐标;
B3、将所述拟合点矩阵作为三角化算法的输入,跟踪所述外界边的顶点顺序,并将外边界作为所述三角化算法的边界约束;
B4、使用所述三角化算法计算所述拟合三角网格的拓扑结构,并将所述拓扑结构写入所述第三三角形数组中。
在该实施例中,在所述步骤A4中,若所述任一坐标方向为Z轴,则在所述步骤A5中所述对应的方向为X、Y方向;在所述步骤B2中,提供的所述对应坐标的值为提取X、Y方向的值,所述形函数计算世界坐标系中的另一值为Z方向的值;或者
在所述步骤A4中,若所述任一坐标方向为X轴,则在所述步骤A5中所述对应的方向为Z、Y方向;在所述步骤B2中,提供的所述对应坐标的值为提取Z、Y方向的值,所述形函数计算世界坐标系中的另一值为X方向的值;或者
在所述步骤A4中,若所述任一坐标方向为Y轴,则在所述步骤A5中所述对应的方向为X、Z方向;在所述步骤B2中,提供的所述对应坐标的值为提取X、Z方向的值,所述形函数计算世界坐标系中的另一值为Y方向的值。具体的,可以根据三维模型的结构以及操作方便性选择世界坐标系中的任一坐标轴方向进行操作。
具体的,可通过下述步骤实现所述步骤S202:
a)构建第三顶点数组、第三三角形数组和第三相邻关系数组,以表示拟合获得的拟合三角网格。
b)按一定步长取选中的三维模型区域的x、y值,并根据形函数计算z值,获得拟合点矩阵的坐标。
c)将拟合点矩阵作为Delaunay三角化算法的输入;跟踪外界边的顶点顺序,若不是逆时针方向,则把顶点顺序反向。将外边界作为Delaunay三角化算法的边界约束。
d)使用Delaunay三角化算法计算拟合三角网格的拓扑结构,并写入新构建的第三三角形数组中。其中,c、d两个步骤的效果是保证了拟合三角网格的拓扑正确性,并具有平滑均匀的特点。
在本发明的第六实施例中,所述步骤S203包括:
C1、构建第四顶点数组、第四三角形数组和第四相邻关系数组,以表示将所述拟合三角网格拼接回所述原三维模型的三角网格后的三角网格;
C2、将所述拟合三角网格的第三顶点数组乘以映射矩阵的逆矩阵,并映射回到所述原三维模型的三角网格所在的世界坐标系;
C3、将所述原三维模型的三角网格中未标记为应删除状态的三角形和所述拟合三角网格以顶点不重合的方式对应写入所述第四顶点数组、第四三角形数组和第四相邻关系数组中。
在所述步骤C3中,以顶点不重合的方式包括:在插入新顶点时,首先检查所述对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中是否存在重合点,若存在则返回所述顶点索引;若不存在则作为新坐标插入对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中;
所述检查所述对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中是否存在重合点的方式包括遍历所有对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中的顶点坐标,或者以空间划分或者分叉树的方式查询相邻顶点。
具体的,可通过下述步骤实现所述步骤S203:
a)构建第四顶点数组、第四三角形数组和第四相邻关系数组,以表示自动造型得到的三角网格数据。
b)将拟合三角网格的第三顶点数组顶点数组乘以映射矩阵的逆矩阵,映射回所述原三维模型的三角网格所在的世界坐标系。
c)将所述原三维模型的三角网格中未标记为“应删除状态”的三角形,和拟合三角网格以顶点不重合的方式写入新数组中。顶点不重合的方式是指插入新顶点时先检查是否存在重合点,若存在则返回该顶点索引,若不存在则作为新坐标插入。检查的方法既可以是遍历所有顶点坐标,也可以空间划分或分叉数的方式来快速查询相邻顶点。
参见图3A和图3B,在本发明的一个实施例中,对于一个三角网格表示的肝脏三维模型,用鼠标框选图3A中三维模型表面一个包含空洞的区域40,依照如下技术步骤,得到图3B中修补表面空洞的技术效果,如区域41所示;
1)使用线性浮点型数组保存肝脏三维模型的三角网格数据;
2)构建新的浮点型数组保存选中的三维模型区域的三角网格数据,并计算出该区域的外边界;
3)用移动最小二乘法拟合出该区域所在平面,将选中的三维模型区域的三角网格数据投影到该平面,并以一定步长作限定步数的向内采样,得到样本点矩阵,限定步数的向内采样能达到修补空洞的目的;
4)基于样本点矩阵计算移动最小二乘法的形函数;
5)按一定步长取选中的三维模型区域的x、y值,并根据形函数计算z值,得到拟合点矩阵;
6)将拟合点矩阵作为Delaunay三角化算法的输入,将逆时针化的外边界作为Delaunay三角化算法的边界约束,计算出算拟合三角网格;
7)将拟合三角网格拼接回原肝脏三维模型的三角网格,肝脏三维模型表面的空洞消失。
参见图4A和图4B,在本发明的一个实施例中,对于一个三角网格表示的肝脏三维模型,用鼠标框选图4A中三维模型表面一个包含复杂凸起凹陷的区域,依照如下技术步骤,得到图4B中去除表面复杂凸起凹陷的技术效果;
1)使用线性浮点型数组保存肝脏三维模型的三角网格数据;
2)构建新的浮点型数组保存选中的三维模型区域的三角网格数据,并计算出该区域的外边界;
3)用移动最小二乘法拟合出该区域所在平面,将选中的三维模型区域的三角网格数据投影到该平面,并以一定步长作限定步数的向内采样,得到样本点矩阵,限定步数的向内采样能达到去除复杂凸起凹陷的目的;
4)基于样本点矩阵计算移动最小二乘法的形函数;
5)按一定步长取选中的三维模型区域的x、y值,并根据形函数计算z值,得到拟合点矩阵;
6)将拟合点矩阵作为Delaunay三角化算法的输入,将逆时针化的外边界作为Delaunay三角化算法的边界约束,计算出算拟合三角网格;
7)将拟合三角网格拼接回原肝脏三维模型的三角网格,肝脏三维模型表面的复杂凸起凹陷被去除。
参见图5A和图5B,在本发明的一个实施例中,对于一个三角网格表示的肝脏三维模型,用鼠标框选图5A中的三维模型表面一个具有噪点的区域,依照如下技术步骤,得到图5B中平滑表面的技术效果;
1)使用线性浮点型数组保存肝脏三维模型的三角网格数据;
2)构建新的浮点型数组保存选中的三维模型区域的三角网格数据,并计算出该区域的外边界;
3)用移动最小二乘法拟合出该区域所在平面,将选中的三维模型区域的三角网格数据投影到该平面,并以一定步长对整个选中的三维模型区域采样,得到样本点矩阵,对整个选中的三维模型区域采样能达到表面平滑的效果;
4)基于样本点矩阵计算移动最小二乘法的形函数;
5)按一定步长取选中的三维模型区域的x、y值,并根据形函数计算z值,得到拟合点矩阵;
6)将拟合点矩阵作为Delaunay三角化算法的输入,将逆时针化的外边界作为Delaunay三角化算法的边界约束,计算出算拟合三角网格;
7)将拟合三角网格拼接回原肝脏三维模型三角网格,得到平滑后的肝脏三维模型。
综上所述,本发明通过根据在原三维模型上选择的三维模型区域的形状特征拟合形函数;然后根据所述形函数生成优化的拟合三角网格;最后将所述拟合三角网格拼接回所述原三维模型的三角网格中。实现了对选择的三维模型区域进行拟合优化。保证了拟合三角网格的拓扑正确性,并具有平滑均匀的特点;最后将生成的拟合三角网格拼接回原三角网格,实现了自动造型功能。可以对质量不好的三角网格数据做平滑优化,也可以对表面空洞修补,还可用于表面复杂凸起凹陷的去除,提供了三维几何模型处理领域的模型优化方法和系统。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (10)
1.一种三角网格数据的拟合优化的方法,其特征在于,所述方法包括:
A、根据在原三维模型上选择的三维模型区域的形状特征拟合形函数;
B、根据所述形函数生成优化的拟合三角网格;
C、将所述拟合三角网格拼接回所述原三维模型的三角网格中。
2.根据权利要求1所述的方法,其特征在于,在所述步骤A之前包括:
D、选择所述原三维模型上需要进行拟合优化的三维模型区域。
3.根据权利要求1所述的方法,其特征在于,所述步骤A包括:
A1、分别获取所述原三维模型的三角网格中的每个三角形的第一顶点数组、第一三角形数组以及第一相邻关系数组;
A2、构建第二顶点数组、第二三角形数组以及第二相邻关系数组,以表示所述选择的三维模型区域的三角网格;
A3、标记所述选择的三维模型区域的三角网格的第二三角形数组中的边界边,将所述第二三角形数组中共享顶点的边界边连接,构成不同的集合,并提取所有所述集合中最大的首尾相连的集合作为所述选择的三维模型区域的外边界;
A4、提取所述外边界边上的所有顶点坐标,并采用移动最小二乘法拟合出一个平面,根据平面法向量与世界坐标系任一坐标轴方向的夹角计算映射矩阵;
A5、将所述选择的三维模型区域的第二顶点数组乘以所述映射矩阵,并投影到所述平面,由所述外边界开始在对应的方向以特定步长向内采样,得到样本点矩阵;
A6、使用移动最小二乘法计算形函数。
4.根据权利要求3所述的方法,其特征在于,所述步骤A1包括:
A12、使用线性浮点型数组保存所述原三维模型的三角网格中的每个三角形的顶点坐标,获得所述三角网格的第一顶点数组;
A13、使用线性整数型数组保存所述原三维模型的三角网格的顶点索引,获得所述三角网格的第一三角形数组;
A14、使用二维整型数组保存所述原三维模型的三角网格中的每个三角形的顶点所属的三角形索引,获得所述三角网格的第一相邻关系数组。
5.根据权利要求4所述的方法,其特征在于,所述步骤A2包括:
A21、在所述选择的三维模型区域内的三角网格中任取一个三角形作为种子三角形;
A22、根据所述原三维模型的三角网格的相邻关系,以所述种子三角形为起始作阈值连通搜索,获得所述选择的三维模型区域的第二顶点数组、第二三角形数组,以及第二相邻关系数组;
A23、将所述选择的三维模型区域的第二顶点数组、第二三角形数组以及第二相邻关系数组写入所述选择的三维模型区域的三角网格的相应的数组中,并且在所述原三维模型的三角网格中将所述种子三角形标记为应删除状态;
在所述步骤A5中,所述向内采样的特定步长为一个限定的浮点数值;或者为与所述选择的三维模型区域相关的自适应浮点数值。
6.根据权利要求5所述的方法,其特征在于,所述步骤B包括:
B1、构建第三顶点数组、第三三角形数组和第三相邻关系数组,以表示拟合获得的拟合三角网格;
B2、按照所述特定步长提取所述选择的三维模型区域的对应坐标的值,并根据所述形函数计算世界坐标系中的另一值,获得拟合点矩阵的坐标;
B3、将所述拟合点矩阵作为三角化算法的输入,跟踪所述外界边的顶点顺序,并将外边界作为所述三角化算法的边界约束;
B4、使用所述三角化算法计算所述拟合三角网格的拓扑结构,并将所述拓扑结构写入所述第三三角形数组中。
7.根据权利要求6所述的方法,其特征在于,在所述步骤A4中,若所述任一坐标方向为Z轴,则在所述步骤A5中所述对应的方向为X、Y方向;在所述步骤B2中,提供的所述对应坐标的值为提取X、Y方向的值,所述形函数计算世界坐标系中的另一值为Z方向的值;或者
在所述步骤A4中,若所述任一坐标方向为X轴,则在所述步骤A5中所述对应的方向为Z、Y方向;在所述步骤B2中,提供的所述对应坐标的值为提取Z、Y方向的值,所述形函数计算世界坐标系中的另一值为X方向的值;或者
在所述步骤A4中,若所述任一坐标方向为Y轴,则在所述步骤A5中所述对应的方向为X、Z方向;在所述步骤B2中,提供的所述对应坐标的值为提取X、Z方向的值,所述形函数计算世界坐标系中的另一值为Y方向的值。
8.根据权利要求6所述的方法,其特征在于,所述步骤C包括:
C1、构建第四顶点数组、第四三角形数组和第四相邻关系数组,以表示将所述拟合三角网格拼接回所述原三维模型的三角网格后的三角网格;
C2、将所述拟合三角网格的第三顶点数组乘以映射矩阵的逆矩阵,并映射回到所述原三维模型的三角网格所在的世界坐标系;
C3、将所述原三维模型的三角网格中未标记为应删除状态的三角形和所述拟合三角网格以顶点不重合的方式对应写入所述第四顶点数组、第四三角形数组和第四相邻关系数组中。
9.根据所述权利要求6所述的方法,其特征在于,所述步骤C3中,以顶点不重合的方式包括:在插入新顶点时,首先检查所述对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中是否存在重合点,若存在则返回所述顶点索引;若不存在则作为新坐标插入对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中;
所述检查对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中是否存在重合点的方式包括遍历所有对应的所述第四顶点数组、第四三角形数组和第四相邻关系数组中的顶点坐标,或者以空间划分或者分叉树的方式查询相邻顶点。
10.一种用于实现权利要求1~9任一项所述的三角网格数据的拟合优化的方法的系统,所述系统包括:
函数生成模块,用于根据在原三维模型上选择的三维模型区域的形状特征拟合形函数;
拟合模块,用于根据所述形函数生成优化的拟合三角网格;
拼接模块,用于将所述拟合三角网格拼接回所述原三维模型的三角网格中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210163433XA CN102737407A (zh) | 2012-05-24 | 2012-05-24 | 三角网格数据的拟合优化的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210163433XA CN102737407A (zh) | 2012-05-24 | 2012-05-24 | 三角网格数据的拟合优化的方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102737407A true CN102737407A (zh) | 2012-10-17 |
Family
ID=46992826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210163433XA Pending CN102737407A (zh) | 2012-05-24 | 2012-05-24 | 三角网格数据的拟合优化的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102737407A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440680A (zh) * | 2013-08-22 | 2013-12-11 | 浙江大学 | 一种基于一范数优化的Polycube可控生成方法 |
CN104899925A (zh) * | 2015-06-29 | 2015-09-09 | 遵义宏港机械有限公司 | 一种数控铣床工件三维建模方法 |
CN106408514A (zh) * | 2016-08-30 | 2017-02-15 | 中国航天空气动力技术研究院 | 用于从三维多块网格中自动检索拼接边界面对应关系的方法 |
CN106649992A (zh) * | 2016-11-17 | 2017-05-10 | 复旦大学 | 舰船与尾迹的网格模型的融合与优化方法 |
CN107798182A (zh) * | 2017-10-19 | 2018-03-13 | 江苏金陵科技集团有限公司 | 一种基站辐射范围的快速计算与更新方法 |
CN109064472A (zh) * | 2017-03-28 | 2018-12-21 | 合肥工业大学 | 一种脊椎骨的三维空间模型拟合平面的拟合方法及装置 |
CN109717995A (zh) * | 2019-03-13 | 2019-05-07 | 山东大学 | 一种始终保持贴合矫正支具的设计、建模方法及系统 |
CN111093153A (zh) * | 2018-10-24 | 2020-05-01 | 北京嘀嘀无限科技发展有限公司 | 区域形状的确定方法、装置、电子设备及储存介质 |
CN111310108A (zh) * | 2020-02-06 | 2020-06-19 | 西安交通大学 | 一种线性拟合方法和系统以及储存介质 |
CN113920276A (zh) * | 2021-10-11 | 2022-01-11 | 广东工业大学 | 一种三角网格模型的特征识别方法及其特征识别系统 |
CN114399583A (zh) * | 2021-12-03 | 2022-04-26 | 聚好看科技股份有限公司 | 一种基于几何的三维模型拼接方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1858801A (zh) * | 2006-06-08 | 2006-11-08 | 东南大学 | 三维扫描的点云孔洞填补方法 |
-
2012
- 2012-05-24 CN CN201210163433XA patent/CN102737407A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1858801A (zh) * | 2006-06-08 | 2006-11-08 | 东南大学 | 三维扫描的点云孔洞填补方法 |
Non-Patent Citations (5)
Title |
---|
刘新国 等: "增量几何压缩", 《软件学报》 * |
蒋跃华 等: "残缺网格模型的快速B样条曲面重建", 《计算机辅助设计与图形学学报》 * |
谭志辉 等: "基于移动最小二乘曲面的点云拼接算法", 《计算机辅助工程》 * |
陈志杨 等: "交叠网格的检测与合并", 《中国机械工程》 * |
韦争亮 等: "三角网格大面积孔洞光顺修补算法的研究", 《中国机械工程》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440680B (zh) * | 2013-08-22 | 2015-12-02 | 浙江大学 | 一种基于一范数优化的Polycube可控生成方法 |
CN103440680A (zh) * | 2013-08-22 | 2013-12-11 | 浙江大学 | 一种基于一范数优化的Polycube可控生成方法 |
CN104899925A (zh) * | 2015-06-29 | 2015-09-09 | 遵义宏港机械有限公司 | 一种数控铣床工件三维建模方法 |
CN106408514B (zh) * | 2016-08-30 | 2019-07-02 | 中国航天空气动力技术研究院 | 用于从三维多块网格中自动检索拼接边界面对应关系的方法 |
CN106408514A (zh) * | 2016-08-30 | 2017-02-15 | 中国航天空气动力技术研究院 | 用于从三维多块网格中自动检索拼接边界面对应关系的方法 |
CN106649992A (zh) * | 2016-11-17 | 2017-05-10 | 复旦大学 | 舰船与尾迹的网格模型的融合与优化方法 |
CN106649992B (zh) * | 2016-11-17 | 2020-05-12 | 复旦大学 | 舰船与尾迹的网格模型的融合与优化方法 |
CN109064472A (zh) * | 2017-03-28 | 2018-12-21 | 合肥工业大学 | 一种脊椎骨的三维空间模型拟合平面的拟合方法及装置 |
CN109064472B (zh) * | 2017-03-28 | 2020-09-04 | 合肥工业大学 | 一种脊椎骨的三维空间模型拟合平面的拟合方法及装置 |
CN107798182A (zh) * | 2017-10-19 | 2018-03-13 | 江苏金陵科技集团有限公司 | 一种基站辐射范围的快速计算与更新方法 |
CN111093153A (zh) * | 2018-10-24 | 2020-05-01 | 北京嘀嘀无限科技发展有限公司 | 区域形状的确定方法、装置、电子设备及储存介质 |
CN111093153B (zh) * | 2018-10-24 | 2021-04-20 | 滴滴智慧交通科技有限公司 | 区域形状的确定方法、装置、电子设备及储存介质 |
CN109717995A (zh) * | 2019-03-13 | 2019-05-07 | 山东大学 | 一种始终保持贴合矫正支具的设计、建模方法及系统 |
CN111310108A (zh) * | 2020-02-06 | 2020-06-19 | 西安交通大学 | 一种线性拟合方法和系统以及储存介质 |
CN113920276A (zh) * | 2021-10-11 | 2022-01-11 | 广东工业大学 | 一种三角网格模型的特征识别方法及其特征识别系统 |
CN113920276B (zh) * | 2021-10-11 | 2022-04-01 | 广东工业大学 | 一种三角网格模型的特征识别方法及其特征识别系统 |
CN114399583A (zh) * | 2021-12-03 | 2022-04-26 | 聚好看科技股份有限公司 | 一种基于几何的三维模型拼接方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102737407A (zh) | 三角网格数据的拟合优化的方法及其系统 | |
CN102298795B (zh) | 一种快速成型工艺中零件的stl三角网格模型的三维分段方法 | |
CN107025685B (zh) | 拓扑感知下的机载建筑屋顶点云建模方法 | |
CN104268934B (zh) | 一种由点云直接重建三维曲面的方法 | |
CN103236088B (zh) | 基于复合网格的三维地质体构造建模方法与系统 | |
CN106780751A (zh) | 基于改进的屏蔽泊松算法的三维点云重建方法 | |
CN104835202A (zh) | 一种三维虚拟场景快速构建方法 | |
CN109584357A (zh) | 基于多轮廓线的三维建模方法、装置、系统及存储介质 | |
CN102682476B (zh) | 三角网格数据的布尔运算方法及其系统 | |
Li et al. | Geometry synthesis on surfaces using field-guided shape grammars | |
CN102819865A (zh) | 一种大地电磁三维地质结构模型的建模方法 | |
CN105354396A (zh) | 一种不同软件协同建模的几何比对方法 | |
CN110033519A (zh) | 基于隐式函数的三维建模方法、装置、系统及存储介质 | |
CN105022865A (zh) | 一种基于stl模型布尔运算的飞机油箱内表面模型提取方法 | |
CN104966317A (zh) | 一种基于矿体轮廓线的三维自动建模方法 | |
CN105184855A (zh) | 基于三维点云的特征面构建方法及装置 | |
CN115661374B (zh) | 一种基于空间划分和模型体素化的快速检索方法 | |
CN106780458A (zh) | 一种点云骨架提取方法及装置 | |
CN104090945B (zh) | 一种地理空间实体构建方法及系统 | |
CN105844067A (zh) | 一种船体曲板焊接变坡口自动加工数据的获取方法 | |
CN108230452A (zh) | 一种基于纹理合成的模型补洞方法 | |
CN105225272A (zh) | 一种基于多轮廓线三角网重构的三维实体建模方法 | |
CN113971718B (zh) | 一种对三维点云模型进行布尔运算的方法 | |
CN113342999B (zh) | 一种基于多层跳序树结构的变分辨率点云简化方法 | |
Wei et al. | A point clouds fast thinning algorithm based on sample point spatial neighborhood |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20121017 |