欢迎来到天天文库
浏览记录
ID:21503323
大小:25.00 KB
页数:5页
时间:2018-10-22
《基于曲率的三角网格模型分割算法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于曲率的三角网格模型分割算法 摘要本文围绕三角网格模型分割技术展开研究,主要针对具有非规则任意边界的三维网格模型,以曲面曲率为特征采用区域生长算法进行三角网格模型的分割。提出了一种基于曲率的网格分割算法。本文所用的分割算法是基于面的方法,把曲率小于某一阈值的顶点视为非曲率突变点,从一组种子点开始,进行区域生长,即把非曲率突变点的邻接三角片加入当前正在进行生长的曲面,直到周围邻域全是曲率突变点为止,生长结束。 【关键词】三角网格模型曲面分割离散曲率区域生长 1引言 随着三维扫描技术和计算机图形学的发展以及三维模型数量的快速增加,三角网格模型分割技术已经成为近年来的一个热
2、门研究课题,并广泛地应用于计算机图形学的许多领域,如计算机动画、三维变形、网格压缩、纹理映射等。 本文主要研究基于离散曲面曲率的三角网格模型的分割技术。利用离散曲面高斯曲率和平均曲率的计算公式。以顶点的曲率阈值为生长原则,利用区域生长算法实现了三角网格模型的分割。本文以曲率为分割依据,利用区域生长算法进行三角网格模型分割。从一组“种子点”开始,进行“区域生长”,找出具有相似特征的点,即曲率较小的点,构成一个曲面片,直至周围邻域没有特征一致的点“生长”才结束,即周围所有的点都是曲率突变点,这些曲率突变点也即面片的边界点。 2三角网格模型介绍 三角网格模型是由三维空间中的三角
3、形通过边和顶点连接而成的分片线性的曲面,其中每条边最多包含在两个三角形中。定义三角网格M=(n,k),其中n={V1,V2,...,},Vi∈R3,表示M中的顶点在三维空间中的位置;k是一单纯复合型,包含顶点集{1,2,...,n}及其非空子集,表示顶点间的连接相互关系。三角网格M中的点、边、面是k的一组单纯形,可分别记作: 点:V={i}∈k 边:E=(i,j)∈k 面:F={i,j,k}∈k 点的邻域如图1所示。 对于任意的顶点V,其领域关系有: (1)1环邻域顶点的集合,即与V相邻的m个邻点,记为NV(i)={Vj,Vj+1,...,Vj+m-1}。 (2)
4、邻边集合,即有一个顶点为V的边的集合,记为NE(i)={Ej,Ej+1,...,Ej+m-1}。 (3)邻接三角片集合,即有一个顶点为V的三角片的集合,记为NF(i)={Fj,Fj+1,...,Fj+m-1}。 (4)2环邻域顶点集合,即为其1环领域顶点的1环领域顶点,其邻接三角片与V的邻接三角片有公共边,但其本身与无公共边。记为N2V(i)={Vk,Vk+1,...,Vk+l-1}。 3三角网格分割的相关概念 三角网格分割(简称网格分割),是指根据一定的几何和拓扑特征,分解成一组数目有限、各自具有简单形状意义的、且各自连通的子网格片的工作。 令S为网格的顶点集、边集
5、或者面片集。对于网格模型M的分割定义:将S分割为k个不相交的子集。即 (1) (2) 4算法基本思想 (1)通过拟合三角网格模型任意顶点的局部二次曲面,求出任意顶点的曲率,找出三角网格模型所有的曲率突变点,即曲率绝对值大于某一给定阈值的点。 (2)从三角网格模型的任意一个非曲率突变点(曲率小于给定阈值的点)出发进行深度优先遍历搜索,若搜索到的网格顶点是非边界点,则将其邻接三角片加入到当前正在进行生长的曲面片中,否则访问下一个邻接点,直到当前曲面片的所有边界点都是曲率突变点为止,则当前面片的区域生长过程完成。再选取另一个未访问过的非曲率突变点,将其作为种子点生长下一个曲
6、面片。当所有的网格顶点都访问完毕,则网格模型的分割也就完成。 5算法的描述 5.1算法步骤 步骤1:置网格顶点的索引v=1;转步?E2。 步骤2:选取种子点。若索引为v的顶点P(v)未曾被访问过,即访问数组visited[v]==false,则将其作为新的曲面片进行区域生长的种子点,转步骤4。否则转步骤3。 步骤3:顶点索引v=v+1;若v小于模型的顶点数,则转步骤2;否则转步骤9。 步骤4:面片初始化。给新的曲面片分配必要的内存空间,初始化某些变量。将新的曲面片结点插入模型的曲面片链表中。转步骤5。 步骤5:区域生长。置索引为v的当前生长点P(v)的访问标志为真
7、,即visited[v]=true;将P(v)的邻接三角片加入到当前曲面片集合中。若P(v)为非曲率突变点,转步骤6。 步骤6:,置j=0;转步骤7。 步骤7:搜索当前生长顶点P(v)的1环邻域顶点索引w=ver.vertices_1[j];若索引为w的顶点P(w)未被访问过,以P(w)作为新的种子点进行生长,转步骤5;否则转步骤8。 步骤8:j=j+1;若j
此文档下载收益归作者所有