基于曲率的三角网格模型分割算法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于曲率的三角网格模型分割算法   摘 要本文围绕三角网格模型分割技术展开研究,主要针对具有非规则任意边界的三维网格模型,以曲面曲率为特征采用区域生长算法进行三角网格模型的分割。提出了一种基于曲率的网格分割算法。本文所用的分割算法是基于面的方法,把曲率小于某一阈值的顶点视为非曲率突变点,从一组种子点开始,进行区域生长,即把非曲率突变点的邻接三角片加入当前正在进行生长的曲面,直到周围邻域全是曲率突变点为止,生长结束。   【关键词】三角网格模型 曲面分割 离散曲率 区域生长   1 引言   随着三维扫描技术和计算机图形学的发展以及三维模型数量的快速增加,三角网格模型分割技术已经成为近年来的一个热门研究课题,并广泛地应用于计算机图形学的许多领域,如计算机动画、三维变形、网格压缩、纹理映射等。   本文主要研究基于离散曲面曲率的三角网格模型的分割技术。利用离散曲面高斯曲率和平均曲率的计算公式。以顶点的曲率阈值为生长原则,利用区域生长算法实现了三角网格模型的分割。本文以曲率为分割依据,利用区域生长算法进行三角网格模型分割。从一组“种子点”开始,进行“区域生长”,找出具有相似特征的点,即曲率较小的点,构成一个曲面片,直至周围邻域没有特征一致的点“生长”才结束,即周围所有的点都是曲率突变点,这些曲率突变点也即面片的边界点。   2 三角网格模型介绍   三角网格模型是由三维空间中的三角形通过边和顶点连接而成的分片线性的曲面,其中每条边最多包含在两个三角形中。定义三角网格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)邻边集合,即有一个顶点为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为网格的顶点集、边集或者面片集。对于网格模型M的分割定义:将S分割为k个不相交的子集。即   (1)   (2)   4 算法基本思想   (1)通过拟合三角网格模型任意顶点的局部二次曲面,求出任意顶点的曲率,找出三角网格模型所有的曲率突变点,即曲率绝对值大于某一给定阈值的点。   (2)从三角网格模型的任意一个非曲率突变点(曲率小于给定阈值的点)出发进行深度优先遍历搜索,若搜索到的网格顶点是非边界点,则将其邻接三角片加入到当前正在进行生长的曲面片中,否则访问下一个邻接点,直到当前曲面片的所有边界点都是曲率突变点为止,则当前面片的区域生长过程完成。再选取另一个未访问过的非曲率突变点,将其作为种子点生长下一个曲面片。当所有的网格顶点都访问完毕,则网格模型的分割也就完成。   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)的访问标志为真,即 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。

文档评论(0)

heroliuguan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档