CN105741355B - 一种三角网格模型的块分割方法 - Google Patents
一种三角网格模型的块分割方法 Download PDFInfo
- Publication number
- CN105741355B CN105741355B CN201610069444.XA CN201610069444A CN105741355B CN 105741355 B CN105741355 B CN 105741355B CN 201610069444 A CN201610069444 A CN 201610069444A CN 105741355 B CN105741355 B CN 105741355B
- Authority
- CN
- China
- Prior art keywords
- point
- grid model
- vertex
- triangle grid
- triangle
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/30—Polynomial surface description
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种三角网格模型的块分割方法,包括读入三角网格模型,建立拓扑信息;计算三角网格模型顶点的凹凸信号,进行全局Laplace光顺去噪;计算标准化的凹凸信息,获得网格模型的凹特征区域;计算归一化的凹凸信息,收缩凹特征区域;提取收缩后凹特征区域的中心线;采用扇形探射线算法构造出闭合的分割线;采用三维snake方法优化分割线,并对分割线进行拟合平滑;采用区域增长方法对三角网模型进行分割。本发明通过提取三角网格模型块中符合最小值原理的分割线,高效、可靠地将模型分割为符合视觉的最小值规则子块。
Description
技术领域
本发明属于计算机图形学领域,特别涉及一种三角网格模型的块分割方法。
背景技术
由于逆向工程、3D打印、计算机辅助设计技术的发展,定义简单、无歧义的三角网格模型得到了越来越广泛的应用。但由于原始网格模型缺少足够的语义信息和结构特征,许多处理网格模型的算法都需要在网格分割的基础上进行。
所谓网格模型分割,即通过按照一定的分割准则将原始三角网格模型分解为不同的曲面片或部件。整个分割过程通常是由能代表模型结构特征或表面细节特征的几何信号来驱动。分割算法中驱动几何信号总体上可以分为两种,一种是面向全局,能反映出模型结构特征的全局几何信号,如全局测地距离、SDF形状直径等;另一种是针对局部,能反映出模型表面细节特征的局部几何信号,如二面角、局部矢量、曲率等。全局信号面向全局,能够更好的反应模型的结构信息,在指导网格分割时易于避免模型表面复杂纹理的干扰。但计算全局几何信号往往需要消耗大量时间和内存等资源,效率不高;局部几何信号计算量小,效率高,并能准确反映模型表面的局部几何特性。但局部几何信号往往会受到模型表面上局部纹理的干扰,很多仅使用局部几何信号算法只适用于比较规则的CAD模型。
根据分割算法的主要流程,网格模型分割算法可分为两大类,一类是按照模型中某个全局或局部几何信号的相似性将模型的面片或者顶点归并到相关子区域。目前大多数分割算法都可以归为这一类,如区域增长法、聚类分析法等。其中区域增长法一般采用局部几何信号作为分割驱动信号,效率较高,常用于模型的面分割;而聚类分析类算法则一般基于全局信号的迭代聚类,效率较低,常用于模型的块分割。总体来说,基于几何信号相似性来归类的分割算法,其分割效果和分割效率主要取决于驱动分割的几何信号,分割结果难以预测,而且一般会出现过分割现象而需要后续的合并处理。
另一类算法则是通过构造模型上符合最小值原则的分割线,并以分割线作为边界,将原始模型分割成符合人类对形状的理解,具有视觉意义的小块。Lee Y等人在学术会议“Proceedings of the 12th Pacific Conference on Computer Graphics andApplications(PG’04)”发表的学术论文“Intelligent Mesh Scissoring Using 3DSnakes”中通过计算顶点曲率这一局部几何信号,提取特征点并连接成闭合的分割线,最后通过分割线来分割模型。该算法运行效率较高,但同时也具有局部几何信号所带来的缺陷。Benhabiles等人在学术期刊《Computer Graphics Forum》2011,30(8),P2170-2182发表的学术论文“Learning Boundary Edges for 3D-Mesh Segmentation”中引入机器学习的方法,通过将二面角、曲率、SDF值等信号作为标签,在手工分割的数据上用adasboost算法训练出强分类器,并以此作为一种综合信号来检测特征点并最终获得分割线。从其结果看,采用统计学习的算法其分割结果更贴近人眼视觉的分割结果,但该算法不仅在前期训练时需要繁多的人工采集工作,在具体分割时也需要计算包括全局信号在内的多种几何信号,因此算法效率总体上并不高。此类算法中,如果能够快速而准确地提取分割线,则能够获得较好的分割效果和效率。
总之,由于三角网格模型形状的复杂性,目前三角网格模型的块分割方法存在着效率不高、形状适应差、自动化程度不高等问题,有必要提出一种新的技术方案。
发明内容
本发明的目的在于克服现有技术的不足,提出一种三角网格模型的块分割方法,可以通过有效提取三角网格模型块中符合最小值原理的分割线,以此高效、可靠地将模型分割为符合视觉最小值规则的子块,具有较高的鲁棒性和效率,分割过程中基本上不需要人工干预,自动化程度高。
本发明解决其技术问题所采用的技术方案是:
一种三角网格模型的块分割方法,包括如下步骤:
步骤1,基于读入到内存的三角网格模型数据,建立无冗余的点表和面表;基于半边数据结构,建立三角网格模型的面片、边和顶点的完整拓扑信息;
步骤2,遍历三角网格模型的点表,计算所有顶点的凹凸信号Cf,选取Cf值偏小的顶点作为低频信号点;选择一定比例的低频信号点作为全局控制点对三角网格模型进行Laplace光顺处理,获得光顺网格模型;
步骤3,计算光顺网格上顶点的凹凸信号,用平均值和标准差规范化光顺网格上顶点的凹凸信号获得N(Cf),选取N(Cf)大于第一阈值的顶点作为凹特征点,映射凹特征点到原三角网格模型上相应的点,定位原三角网格模型表面上的凹特征区域;
步骤4,根据连通性在原三角网格模型上将所述凹特征区域划分为不同的区域获得多个子区域;计算每个子区域内顶点的凹凸信号并进行归一化后获得N1(Cf);选取N1(Cf)小于第二阈值的顶点作为精检测后的点,收缩凹特征点区域;
步骤5,采用链表区域细化法进行细化操作,提取位于收缩凹特征点区域内并能将该区域一分为二的中心线;
步骤6,对于未闭合的凹特征区域中心线,通过扇形探射线算法构造出闭合的分割线;
步骤7,采用贪心算法实现闭合分割线的移动;利用Dijsktra最短路径算法将移动点与其在曲面上前后相连的两个点进行连接;采用最小二乘法将边界点拟合成二次曲线,将经过的三角面片分割成小三角形,获得光顺分割的边界;
步骤8,依次标记与各封闭分割线相接的三角面片,选取无标记的面片作为种子面片,采用区域增长方法进行三角网格模型分割。
一实施例之中:所述Cf计算公式如下:
Cf=max{(VN·Vij)|j∈N(i)}
其中VN表示顶点的单位外向法矢量,N(i)表示顶点vi的二阶邻域,Vij表示该顶点vi指向其邻域内的点vj形成的单位矢量。
一实施例之中:所述N(Cf)计算公式如下:
N(Cf)=(Cf-μ)/σ
其中μ表示光顺网格上顶点凹凸信号的平均值,σ表示光顺网格上顶点凹凸信号的标准差。
一实施例之中:所述的根据连通性在原三角网格模型上将所述凹特征区域划分为不同的区域获得多个子区域,包括:
4.1将凹特征点放进一个列表中;
4.2从列表中取出种子点,依次将其邻域内凹特征点划进同一个区域里并将这些点从列表中弹出;
4.3分别以邻域内各个凹特征点作为种子点依次将其邻域内凹特征点划进同一个区域里并将这些点从列表中弹出,获得一个独立区域;
4.4从列表中取出下一个点作为种子点,重复4.2-4.3,直至列表为空。
一实施例之中:所述N1(Cf)计算公式如下:
N1(Cf)=(Cf-Cmin)/(Cmax-Cmin)
其中Cmax表示各个子区域内顶点凹凸信号的最大值,Cmin表示各个子区域内顶点凹凸信号的最小值。
一实施例之中:所述步骤5包括:
5.1加入两个布尔变量isFeature和isBoundary到边的数据结构中,设置isBoundary为真,isFeature为假;
5.2创建一个区域的外围边表,遍历凹特征区域所有的边,将外围边加入外围边表;所述外围边表示连接该边的两个三角面片中,有至少一个的边的isFeature为假;
5.3判断外围边是否满足如下两种情况,如果满足,则需要去除:
边的两个端点中,有一个端点被两条以上的边共用,另一个则没有;
边的两个端点都被两条或两条以上的边共用,与该边相连的两个三角面片中,有一个三角面片的三条边的isFeature都为真;
5.4如果根据5.3判断出外围边为需要去除的边,则检查连接该边的两个三角形内的另外四条边是否为外围边,如果某边满足外围边的条件且其isBoundary为假,将该边放入外围边表中,并将其isBoundary设置为真;
5.5去除根据5.3判断出的需要去除的外围边;
5.6重复5.3-5.5直至外围边表为空。
一实施例之中:所述步骤6包括:
6.1以未闭合的凹特征区域中心线的几何中心为出发点,采用扇形探射线算法构造求交用的射线簇;
6.2建立空间八叉树搜索结构获得可能相交的三角面片,并用矢量分解的方式计算射线与三角面片的有效交点;
6.3采用的原则从射线簇与三角网格产生的n个交点中选出一个交点PJ;
其中n表示交点的个数,Li表示交点到几何中心的距离,Ci表示交点的凹凸信号;
6.4未闭合中心线的两个端点通过Dijsktra最短路径算法分别连接交点PJ,构造出两条曲线L1和L2;选取L1和L2中较短的一条曲线与中心线相连,形成一条延长曲线;
6.5重复6.1-6.4,直到L1和L2长度均小于等于延长曲线总长的八分之一,最终生成闭合的分割线。
一实施例之中:所述一定比例的取值范围为20%-40%。
一实施例之中:所述第一阈的取值范围值为1.6-2.6。
一实施例之中:所述第二阈的取值范围值为0-1。
本发明具有如下有益效果:
(1)本发明提供的三角网格模型的块分割方法,基于凹凸信号,在全局光顺的基础上有效提取出符合最小值原则的分割线,实现了复杂三角网格模型有意义的自动分割,具有较高的鲁棒性和效率,分割过程中基本上不需要人工干预,自动化程度高;
(2)通过采用全局控制顶点的Laplace网格光顺变形技术对模型进行滤波,去除其表面的纹理细节和局部几何特征对凹特征检测的干扰,解决了使用局部几何信号检测特征点易受表面干扰的问题;
(3)通过标准化和归一化的凹度信号来检测凹特征区域,增强了算法的对不同模型的适应性;
(4)提出基于探射线的曲线闭合算法,解决了检测到的特征不完整、不能直接用来分割的问题;
(5)对用于二维平面上的Snake方法进行改进后直接应用到三维模型,能简化分割线光顺算法的编程,提高鲁棒性,使分割线光顺并符合最小值定理。
以下结合附图及实施例对本发明作进一步详细说明,但本发明的一种三角网格模型的块分割方法不局限于实施例。
附图说明
图1是本发明的流程示意图;
图2是本发明的凹特征区域中线提取中边端点连接情况示意图之一;
图3是本发明的凹特征区域中线提取中边端点连接情况示意图之二;
图4是本发明的凹特征区域中线提取中边端点连接情况示意图之三;
图5是本发明封闭分割线时求交射线簇构造示意图;
图6是本发明的求交射线与三角面片求交点示意图;
图7是本发明的求交射线簇与某模型的求交结果图;
图8是本发明的未封闭分割线第一次封闭操作示意图;
图9是本发明的未封闭分割线第二次封闭操作示意图;
图10是本发明实施例中马模型的分割效果;
图11是本发明实施例中犰狳模型的分割效果。
具体实施方式
如图1所示,本发明一种三角网格模型的块分割方法,通过软件编程实现,具体包括以下步骤:
步骤1,读入三角网格模型,建立拓扑信息;
使用open()函数打开硬盘内指定路径下的STL(STereo Lithography)三角网格模型文件;使用fscanf()从文本格式的STL文件中读取面片顶点数据和法矢数据;每读入一个顶点的数据,需要使用C++标准模板库中的集合容器类set及关联容器类map来去除坐标值相同的点顶点,建立无冗余的点表和面表,同时建立面片到顶点、顶点到面片的拓扑邻接信息;建立半边数据结构,由面表中每个面片创建三条半边,通过关联容器类map查找伙伴半边,建立面片到面片、顶点到边、边到顶点等拓扑邻接信息。
步骤2,计算三角网格模型顶点的凹凸信号,进行全局Laplace光顺去噪;
(1)遍历三角网格模型的点表,计算三角网格模型所有顶点的凸凹信号,计算方法为Cf=max{(VN·Vij)|j∈N(i)},其中,VN表示该顶点的单位外向法矢量,N(i)是顶点vi的二阶邻域,Vij表示该顶点vi指向其邻域内的点vj形成的单位矢量;
(2)将模型内所有顶点的Cf值采用C++标准模板库中的sort()函数由大到小顺序排列,排序靠后的点为低频信号顶点;
(3)据Cf值的大到小顺序,选择20%-40%的低频点作为全局控制点对原始三角网格网格模型进行Laplace光顺变形处理,获得光顺网格模型,消除模型的局部细节特征和表面纹理对凹特征点检测造成的干扰。具体如下:
①用Laplace矩阵来储存三角网格模型G的拓扑信息。在图论里,网格模型G可以看作是具有顶点集V(G)={v1,v2,v3,…,vn}和边集E(G)={e1,e2,e3,…,en}的图。三角网格模型G的Laplace矩阵L(G)的行和列由V(G)来进行索引。由于采用全局Laplace光顺操作,所以L(G)的主对角线上所有元素为1。如果i≠j,若顶点vi和vj不在图的同一条边上,则L(G)的元素(i,j)为0;否则若顶点vi和vj相邻,则L(G)的元素(i,j)为aij,L(G)表示为:
式中
n表示顶点V(G)的个数,N(i)表示点vi的一阶领域点集,ωij表示顶点vi和顶点vj之间的权重关系。
②光顺前的原网格模型上,顶点vi的Laplace坐标σ1等于该点的局部平均曲率与单位法向量之积:
式中,ki是vi的局部平均曲率,ni是vi的单位法向量,权重ωij代表顶点vi和vj形成的边在vi邻域内所有边之中所占的比重,这里采用平均权重,即ωij=1/N(i).令网格上所有顶点的Laplace坐标σi等于0,即LV=0,即得到一个矩阵形式的方程组,可求出光顺变形之后新网格模型的顶点坐标V,以便在全局范围内削弱每个顶点的一阶邻域内的局部平均曲率。该方程组如下:
左边Laplace矩阵的秩为n-1,所以该方程组没有唯一的解,因此从原模型中选择一定比例的低频点作为约束控制顶点。
③光顺网格模型计算:作为约束的低频顶点远远大于1,因此方程组的个数会大于未知数的个数。使用线性最小二乘法,通过Cholesky分解并回代求出方程组的拟合解,获得光顺网格模型。为了调节控制顶点对新网格的约束力度,使用带权值的最小二乘法来求解带约束的方程组,即:
式中,其中c1,…,cm是m个控制顶点,WB对角线上的元素bij的值代表控制顶点的控制权重,s取值大于1时,控制顶点的约束作用强于Laplace矩阵对于削弱局部平均曲率的约束作用,反之亦然。
本实施例中,取30%低频点作为控制顶点,控制顶点的约束权重取0.01时,不同种类的模型经过光顺变形之后,都能够在保留整体形状的同时,消除其局部细节特征以及表面纹理。
步骤3,计算标准化的凹凸信息,获得网格模型的凹特征区域;
①计算光顺网格上顶点的凹凸信号,并计算这些凹凸信号的平均值和标准差。然后用平均值和标准差来规范化顶点的凹凸信号,经过标准化之后的顶点凹凸信号N(Cf)为:N(Cf)=(Cf–μ)/σ,其中μ为网格顶点凹凸信号的平均值,σ为标准差;
②将光顺网格模型各顶点的标准化凹凸信号N(Cf)与设定阈值进行比较,大于阈值的顶点即为凹特征点,阈值的选取在1.6~2.6之间;
③根据每个凹特征点在光顺网格模型的点表索引值,在原始网格模型上找到索引值相同的顶点,获得原始网格模型表面上的凹陷特征区域。
步骤4,计算归一化的凹凸信息,收缩凹特征区域;
具体包括如下两个步骤:
(1)在原始网格模型上对初次检测到的凹特征区域根据其连通性划分为不同的区域,其方法为:
①将初次检测到的凹特征点放进一个列表中;
②从列表中取出种子点,依次将其邻域内凹特征点划进同一个区域里并将这些点从列表中弹出;
③分别以邻域内各个凹特征点作为种子点重复邻域点的操作,获得一个独立区域;
④从列表中取出下一个点作为种子点,重复②-③,直至列表为空后,可将首次检测到的特征点,分为若干个内部连通的子区域。
(2)针对每个子区域内的顶点,根据凹凸信号进行排序,并按照公式归一化:
N1(Cf)=(Cf-Cmin)/(Cmax-Cmin)
归一化之后,设定一个0~1之间的阈值,N1(Cf)值小于设定阈值的顶点为精检测后的点,收缩初次检测到的特征点区域。
步骤5,提取收缩后凹特征区域的中心线;
对收缩后形成的特征点区域,采用链表区域细化法进行细化操作,提取出位于凹特征区域内并能将该区域一分为二的中心线。具体实现为:通过在边的数据结构中加入两个布尔变量isFeature和isBoundary,isFeature为真表示该边需要保留,isBoundary为真表示该边在外围边表内,为减少该算法中需要创建的链表的个数,提高算法效率,先将这个区域外围的边放入一个边表中,并赋值其isBoundary为真。然后对边表中的边逐个取出进行判断,如果该边能保留,将其isFeature赋值为真,如若要删去,则赋值isFeature为假,并根据条件加入新的边界边;从边表中取出的边一律将isBoundary赋值为假。循环直至外围边表为空为止,具体步骤及判断条件如下:
(1)创建一个区域的外围边表。遍历凹特征区域内所有边,判断一条边是否为外围边的条件如下:连接该边的两个三角面片中,如果有大于等于一个以上的边的isFeature为false,则该边为外围边,将该边加入外围边表。
(2)去除外围边。为了保证细化后的线连续不间断,在去除外围边的时候,应该考虑以下两种情况:
(a)情况一:边的两个端点中,有一个端点被两条以上的边共用,另一个则没有。则将该边从外围边表中去除,并将其isBoundary和isFeature赋值为false,如图2中的边e1。
(b)情况二:边的两个端点都被两条或两条以上的边共用。需要考虑去除该边后,形成的细化线能否连通。判断与该边相连的两个三角面片中,是否有一个三角面片的三条边的isFeature都为true。如果有这样的三角面片,如图3中的边e2,则将该边的isFeature赋值为false;如果没有,如图4中的边e3,则保留该边,其isFeature赋值为true。
(3)增加外围边。当从外围边表去除一条边时,需要检查连接该边的两个三角形内的另外四条边,按照(1)的标准是否为外围边。如果某边满足外围边的条件且其isBoundary为false,将该边放入外围边表之中,并将其isBoundary赋值为true。
(4)重复2~3直至外围边表为空。
步骤6,采用扇形探射线算法构造出闭合的分割线;
对于未闭合的凹特征区域中心线,构造求交用的射线簇,计算射线簇与网格模型的交点,选择合适的形成能够用于分割的闭合分割线,并对其进行光顺操作,基本方法为:
(1)以未闭合的凹特征区域中心线L的几何中心为出发点,构造求交用的射线簇,具体为:
①通过坐标平均计算中心曲线的几何中心其中,Pi为构成L的顶点,n为其个数;
②构造局部坐标系如图5,设未闭合中心线L起点为PS、终点为PE,则计算矢量构造出两个矢量V1=PS-P和V2=PE-P,则矢量VT=V1×V2、VP=V1+V2、VL=VT×VP,将VT、VP、VL单位化,以VL为Z轴构成局部坐标系。其变换矩阵MT为:
其中,cosT,cosU,cosV分别为VL在原坐标系上x,y,z轴上的方向余弦;P点坐标为(x0,y0,z0);A,B,C,D为:
③在局部坐标系中将VP绕VL从两个方向偏转β/2,形成一个角度为β的扇形,在扇形内通过按一定角度α=β/n分别绕VL旋转VP获得n条射线。旋转矩阵MZ为:
其中α为偏转的角度。当α=β/12时,可以形成12条探测线,由VP偏转而来的射线即为所求探射线,即VP·MZ。
(2)计算射线簇与模型的交点:通过建立空间八叉树搜索结构快速获得可能相交的三角面片,并用矢量分解的方式计算射线与三角面片的有效交点。有效交点计算如图6,图中点P可以看作是由三角形其中一个顶点V0先向V2移动,再向V1移动的结果,即:P=V0+u(V2-V0)+v(V1-V0).同样地,射线也可以看作是顶点沿矢量Vp移动的结果,可以表示为:P+tVp.于是求射线与三角面片的交点就成了求解下面这个方程:
当t<0或者u、v在区间[0,1]外时,可以判断出射线不与三角面片相交;其他情况下,可以通过P=V0+u(V2-V1)+v(V1-V0)求出交点P。图7为一个模型中一条未闭合分割线的交点计算结果。
(3)交点选取:即从射线簇与网格会产生的n个交点中选取一个合适交点来指导分割线的形成,选择原则为:其中n为交点的个数,Li是交点到重心P的距离,Ci为交点的凹凸信号;选择好的交点设为PJ。
(4)分割线的延长:如图8所示,通过Dijsktra最短路径算法来连接未闭合分割线L的两个端点PS,PE与交点PJ,构造出两条曲线L1和L2;计算L1和L2长度,当长度均大于一定值时,选取其中较短的一条与原分割线L相连,形成一条延长线曲线;
(5)重复(1)-(4),如图9所示;直到L1和L2长度均小于等于曲线总长的八分之一,最终生成闭合的分割线。
步骤7,采用三维snake方法优化分割线,并对分割线进行拟合平滑,使分割边界更符合人眼视觉的“最小值规则”,具体包括:
(1)在三维网格上直接实施Snake方法,采用贪心算法来实现曲线的移动,具体实现方法为:
①对于曲线上的每个点vi,Ei,min初始化为一个极大的整数值;
②对vi的一阶领域D(vi)中每个点vj,计算vj点的能量Esnake(vj):Esnake(vj)=Eint(vi-1,vj,vi+1)+Eext(vj),其中,Eint(vi)为点vi内能量,表达式为Eint(vj)=a·||vj-vi-1||+b·||vi+1-2·vj+vi-1||,参数a用以控制曲线的长度,参数b用以保证曲线光顺,vi-1、vi+1为分割线上vi之前和之后的顶点,通过将内能量最小化,使曲线更加光顺;Eext(vi)为外能量,其表达式为:
式中,Cf为顶点的凹凸信号;外能量的最小化,将使曲线向最凹陷处移动;
③如果Esnake(vj)<Ei,min,则令Ei,min=Esnake(vj),vi,min=vj;
④重复②-③,找到vi的一阶领域D(vi)中Ei,min最小的顶点vi,min;
⑤移动点vi到vi,min处;
(2)每移动曲线上的一个点,利用Dijsktra最短路径算法,将该点与其在曲面上前后相邻的两点连接起来;
(3)通过最小二乘法将边界点拟合成二次曲线,将经过的三角面片分割成小三角形,获得进一步光顺分割的边界。
步骤8,在三角网格模型中,与各封闭分割线相接的三角面片依次做标记,选取无标记的面片作为种子面片,采用区域增长方法进行三角网格模型分割。
图10-11为本发明的实施实例。运行实例时,各步骤中涉及到的参数如下:
(1)网格模型噪声消除的光顺变形:控制顶点的数目为总顶点数的30%,权重s为0.01。
(2)凹特征区域检测:粗检测的阈值根据实际情况,在1.6~2.6之间选取;精检测的归一化阈值一般选为0.5。
(3)形成闭合分割线:角度β一般设置为60度,射线之间的角度间隔为5,因此射线的数目跟随α的大小而变化。
(4)分割线的优化:参数a=0.5,b=0.5.
如图10-11所示,图中加粗的线条为提取出的分割线。图10为马模型,包含1.6万个三角面片;图11为犰狳模型,包含5万个面片。
本发明提供的技术方案带来的有益效果是:
(1)本发明提供的三角网格模型的块分割方法,基于凹凸信号,在全局光顺的基础上有效提取出符合最小值原则的分割线,实现了复杂三角网格模型有意义的自动分割,具有较高的鲁棒性和效率,分割过程中基本上不需要人工干预,自动化程度高;
(2)通过采用全局控制顶点的Laplace网格光顺变形技术对模型进行滤波,去除其表面的纹理细节和局部几何特征对凹特征检测的干扰,解决了使用局部几何信号检测特征点易受表面干扰的问题;
(3)通过标准化和归一化的凹度信号来检测凹特征区域,增强了算法的对不同模型的适应性;
(4)提出基于探射线的曲线闭合算法,解决了检测到的特征不完整、不能直接用来分割的问题;
(5)对用于二维平面上的Snake方法进行改进后直接应用到三维模型,能简化分割线光顺算法的编程,提高鲁棒性,使分割线光顺并符合最小值定理。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种三角网格模型的块分割方法,其特征在于,包括:
步骤1,基于读入到内存的三角网格模型数据,建立无冗余的点表和面表;基于半边数据结构,建立三角网格模型的面片、边和顶点的完整拓扑信息;
步骤2,遍历三角网格模型的点表,计算所有顶点的凹凸信号Cf,选取Cf值偏小的顶点作为低频信号点;选择一定比例的低频信号点作为全局控制点对三角网格模型进行Laplace光顺处理,获得光顺网格模型;
步骤3,计算光顺网格上顶点的凹凸信号,用平均值和标准差规范化光顺网格上顶点的凹凸信号获得N(Cf),选取N(Cf)大于第一阈值的顶点作为凹特征点,映射凹特征点到原三角网格模型上相应的点,定位原三角网格模型表面上的凹特征区域;
步骤4,根据连通性在原三角网格模型上将所述凹特征区域划分为不同的区域获得多个子区域;计算每个子区域内顶点的凹凸信号并进行归一化后获得N1(Cf);选取N1(Cf)小于第二阈值的顶点作为精检测后的点,收缩凹特征点区域;
步骤5,采用链表区域细化法进行细化操作,提取位于收缩凹特征点区域内并能将该区域一分为二的中心线;
步骤6,对于未闭合的凹特征区域中心线,通过扇形探射线算法构造出闭合的分割线;
步骤7,采用贪心算法实现闭合分割线的移动;利用Dijsktra最短路径算法将移动点与其在曲面上前后相连的两个点进行连接;采用最小二乘法将边界点拟合成二次曲线,将经过的三角面片分割成小三角形,获得光顺分割的边界;
步骤8,依次标记与各封闭分割线相接的三角面片,选取无标记的面片作为种子面片,采用区域增长方法进行三角网格模型分割。
2.根据权利要求1所述的三角网格模型的块分割方法,其特征在于,所述凹凸信号Cf计算公式如下:
Cf=max{(VN·Vij)|j∈N(i)}
其中VN表示顶点的单位外向法矢量,N(i)表示顶点vi的二阶邻域,Vij表示该顶点vi指向其邻域内的点vj形成的单位矢量。
3.根据权利要求2所述的三角网格模型的块分割方法,其特征在于,所述N(Cf)计算公式如下:
N(Cf)=(Cf-μ)/σ
其中μ表示光顺网格上顶点凹凸信号的平均值,σ表示光顺网格上顶点凹凸信号的标准差。
4.根据权利要求3所述的三角网格模型的块分割方法,其特征在于,步骤4中所述的根据连通性在原三角网格模型上将所述凹特征区域划分为不同的区域获得多个子区域,包括:
4.1 将凹特征点放进一个列表中;
4.2 从列表中取出种子点,依次将其邻域内凹特征点划进同一个区域里并将这些点从列表中弹出;
4.3 分别以邻域内各个凹特征点作为种子点依次将其邻域内凹特征点划进同一个区域里并将这些点从列表中弹出,获得一个独立区域;
4.4 从列表中取出下一个点作为种子点,重复4.2-4.3,直至列表为空。
5.根据权利要求4所述的三角网格模型的块分割方法,其特征在于,所述N1(Cf)计算公式如下:
N1(Cf)=(Cf-Cmin)/(Cmax-Cmin)
其中Cmax表示各个子区域内顶点凹凸信号的最大值,Cmin表示各个子区域内顶点凹凸信号的最小值。
6.根据权利要求5所述的三角网格模型的块分割方法,其特征在于,步骤5包括:
5.1 加入两个布尔变量isFeature和isBoundary到边的数据结构中,设置isBoundary为真,isFeature为假;
5.2 创建一个区域的外围边表,遍历凹特征区域所有的边,将外围边加入外围边表;所述外围边表示连接该边的两个三角面片中,有至少一个的边的isFeature为假;
5.3 判断外围边是否满足如下两种情况,如果满足,则需要去除:
边的两个端点中,有一个端点被两条以上的边共用,另一个则没有;
边的两个端点都被两条或两条以上的边共用,与该边相连的两个三角面片中,有一个三角面片的三条边的isFeature都为真;
5.4 如果根据5.3判断出外围边为需要去除的边,则检查连接该边的两个三角形内的另外四条边是否为外围边,如果某边满足外围边的条件且其isBoundary为假,将该边放入外围边表中,并将其isBoundary设置为真;
5.5 去除根据5.3判断出的需要去除的外围边;
5.6 重复5.3-5.5直至外围边表为空。
7.根据权利要求6所述的三角网格模型的块分割方法,其特征在于,步骤6包括:
6.1 以未闭合的凹特征区域中心线的几何中心为出发点,采用扇形探射线算法构造求交用的射线簇;
6.2 建立空间八叉树搜索结构获得可能相交的三角面片,并用矢量分解的方式计算射线与三角面片的有效交点;
6.3 采用的原则从射线簇与三角网格产生的n个交点中选出一个交点PJ;
其中n表示交点的个数,Li表示交点到几何中心的距离,Ci表示交点的凹凸信号;
6.4 未闭合中心线的两个端点通过Dijsktra最短路径算法分别连接交点PJ,构造出两条曲线L1和L2;选取L1和L2中较短的一条曲线与中心线相连,形成一条延长曲线;
6.5 重复6.1-6.4,直到L1和L2长度均小于等于延长曲线总长的八分之一,最终生成闭合的分割线。
8.根据权利要求1所述的三角网格模型的块分割方法,其特征在于:
所述一定比例的取值范围为20%-40%。
9.根据权利要求1所述的三角网格模型的块分割方法,其特征在于:
所述第二阈值的取值范围为0-1。
10.根据权利要求1所述的三角网格模型的块分割方法,其特征在于:
所述第一阈值的取值范围为1.6-2.6。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610069444.XA CN105741355B (zh) | 2016-02-01 | 2016-02-01 | 一种三角网格模型的块分割方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610069444.XA CN105741355B (zh) | 2016-02-01 | 2016-02-01 | 一种三角网格模型的块分割方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105741355A CN105741355A (zh) | 2016-07-06 |
CN105741355B true CN105741355B (zh) | 2018-05-25 |
Family
ID=56242133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610069444.XA Active CN105741355B (zh) | 2016-02-01 | 2016-02-01 | 一种三角网格模型的块分割方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105741355B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106327506B (zh) * | 2016-08-05 | 2019-11-08 | 北京三体高创科技有限公司 | 一种基于概率分区合并的三维模型分割方法 |
CN107025687B (zh) * | 2016-12-27 | 2019-09-06 | 西北大学 | 一种基于视觉依赖曲率估算的文物线图绘制方法 |
CN106875438B (zh) * | 2017-02-21 | 2019-05-28 | 浙江大学 | 一种检测stl格式模型文件重复性的方法及系统 |
CN107515995B (zh) * | 2017-09-18 | 2020-06-19 | 河海大学常州校区 | 一种支持自定义语义的电动车变形设计方法 |
CN108416044B (zh) * | 2018-03-15 | 2021-11-09 | 斑马网络技术有限公司 | 场景缩略图的生成方法、装置、电子设备及存储介质 |
CN108932723A (zh) * | 2018-03-26 | 2018-12-04 | 天津工业大学 | 一种基于曲面形态的三维Snake主动脉夹层分割方法 |
CN108499785B (zh) * | 2018-03-30 | 2020-04-28 | 苏州瀚华智造智能技术有限公司 | 一种基于最小厚度约束的复杂曲面喷涂轨迹计算方法 |
CN109448121B (zh) * | 2018-09-26 | 2023-09-15 | 深圳市重投华讯太赫兹科技有限公司 | 一种三角网格模型的处理方法、处理终端及存储介质 |
CN109558646B (zh) * | 2018-11-07 | 2022-08-26 | 华侨大学 | 一种多轴增材制造成型顺序优化方法 |
CN110119772B (zh) * | 2019-05-06 | 2022-05-03 | 哈尔滨理工大学 | 一种基于几何形状特征融合的三维模型分类方法 |
CN110728688B (zh) * | 2019-10-17 | 2022-02-22 | 杭州电子科技大学上虞科学与工程研究院有限公司 | 一种基于能量优化的三维网格模型分割方法及系统 |
CN111028356A (zh) * | 2019-11-25 | 2020-04-17 | 中国地质大学(武汉) | 基于非凸非光滑二阶正则项和稀疏保真项的优化方法 |
CN111127488B (zh) * | 2019-12-29 | 2022-10-14 | 兰州理工大学 | 一种基于统计形状模型自动构建患者解剖结构模型的方法 |
CN111523159B (zh) * | 2020-04-16 | 2023-04-28 | 深圳云甲科技有限公司 | 网格模型的塑形方法、终端及存储介质 |
CN112085750A (zh) * | 2020-09-15 | 2020-12-15 | 广东奥普特科技股份有限公司 | 一种三角网格的分割去噪方法 |
CN112669457A (zh) * | 2020-12-23 | 2021-04-16 | 中国地质大学(武汉) | 一种三维模型网格自适应一致性邻域计算方法 |
CN114707254B (zh) * | 2022-06-01 | 2022-08-26 | 中国空气动力研究与发展中心计算空气动力研究所 | 一种基于模板构造法的二维边界层网格生成方法及系统 |
CN117010042B (zh) * | 2023-09-28 | 2023-12-29 | 武汉必盈生物科技有限公司 | 一种3d打印外固定腕部延伸方法及装置 |
CN117132753B (zh) * | 2023-10-26 | 2024-02-09 | 生态环境部华南环境科学研究所(生态环境部生态环境应急研究所) | 一种煤矸石废料再利用处理设备及其处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147935A (zh) * | 2010-02-09 | 2011-08-10 | 常州高新技术产业开发区三维工业技术研究所有限公司 | 一种适用于从牙颌三角网格曲面分割牙齿三角网格曲面的方法 |
CN103914571A (zh) * | 2014-04-25 | 2014-07-09 | 南京大学 | 一种基于网格分割的三维模型检索方法 |
CN105046750A (zh) * | 2015-08-24 | 2015-11-11 | 杭州美齐科技有限公司 | 一种自动分割全颌牙齿三角网格模型的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2897455A1 (fr) * | 2006-02-13 | 2007-08-17 | Univ Hokkaido Nat Univ Corp | Dispositif, procede et programme de segmentation de donnees de modele en treillis |
-
2016
- 2016-02-01 CN CN201610069444.XA patent/CN105741355B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147935A (zh) * | 2010-02-09 | 2011-08-10 | 常州高新技术产业开发区三维工业技术研究所有限公司 | 一种适用于从牙颌三角网格曲面分割牙齿三角网格曲面的方法 |
CN103914571A (zh) * | 2014-04-25 | 2014-07-09 | 南京大学 | 一种基于网格分割的三维模型检索方法 |
CN105046750A (zh) * | 2015-08-24 | 2015-11-11 | 杭州美齐科技有限公司 | 一种自动分割全颌牙齿三角网格模型的方法 |
Non-Patent Citations (2)
Title |
---|
Parts of recognition;D.D.HOFFMAN 等;《cognition》;19841231;第18卷;第65-96页 * |
基于凸凹信号的网格分割;董洪伟 等;《计算机辅助设计与图形学学报》;20090331;第21卷(第3期);第295-303页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105741355A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105741355B (zh) | 一种三角网格模型的块分割方法 | |
US9348877B2 (en) | Methods, systems, and data structures for performing searches on three dimensional objects | |
Ke et al. | Feature-based reverse modeling strategies | |
Sharp et al. | Pointtrinet: Learned triangulation of 3d point sets | |
CN101556650B (zh) | 一种分布式自适应肺结节计算机检测方法及系统 | |
CN106327506A (zh) | 一种基于概率分区合并的三维模型分割方法 | |
Rusu et al. | Perception for mobile manipulation and grasping using active stereo | |
CN110188763B (zh) | 一种基于改进图模型的图像显著性检测方法 | |
Zhao et al. | Cavitary nodule segmentation in computed tomography images based on self–generating neural networks and particle swarm optimisation | |
Xú et al. | STEP-NC based reverse engineering of in-process model of NC simulation | |
CN110400370B (zh) | 一种构建三维cad模型的语义级部件模板的方法 | |
Jun et al. | Geometric feature recognition for reverse engineering using neural networks | |
Xu et al. | Machining feature recognition from in-process model of NC simulation | |
US20210150078A1 (en) | Reconstructing an object | |
CN114998103A (zh) | 一种基于孪生网络的点云文物碎片的三维虚拟拼接方法 | |
Kim et al. | Exmeshcnn: An explainable convolutional neural network architecture for 3d shape analysis | |
JP2022125003A (ja) | 機械部品を表す3dモデル化オブジェクトのセグメント化 | |
Zulkifli et al. | Decomposition of interacting features using a Kohonen self-organizing feature map neural network | |
Shin et al. | Unsupervised 3d object discovery and categorization for mobile robots | |
Ji et al. | Point cloud segmentation for complex microsurfaces based on feature line fitting | |
CN109063271B (zh) | 一种基于超限学习机的三维cad模型分割方法和装置 | |
Yu et al. | Supervoxel-based graph clustering for accurate object segmentation of indoor point clouds | |
CN103336781A (zh) | 一种医学图像聚类方法 | |
CN109767496B (zh) | 基于对称约束的网络虚拟装配方法 | |
Lu et al. | A surface division method of parts mesh model for on-machine inspection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |