基于变分隐式曲面的三角网格孔洞修补
基于STL三角网格模型孔洞修补的研究
基于STL三角网格模型孔洞修补的研究闫涛【摘要】A holes repairing algorithm for closed STL triangular mesh model is proposed.Firstly,according to the grid and the triangle side adjacent relationship obtain the extraction hole boundary,then calculate the smooth of the boundary points holes,According to their different smooth and different angle fill the new triangle in the holes,and verify the legitimacy of the newly added vertices.So shrinking gradually,until the repair is completed.Experimental results show that the algorithm issimple,effective,effective patching holes.%针对封闭式STL三角网格模型中的孔洞提出了一种修补算法。
首先根据网格中边与三角形之间的邻接关系提取孔洞边界,然后计算孔洞边界点的平滑度,根据其不同的平滑度和不同大小的夹角在孔洞中依次填补新的三角形,并验证添加顶点的进行合法性。
这样逐渐收缩,直至修补完毕。
实验结果证明,该算法简单、有效,孔洞修补效果好。
【期刊名称】《电子设计工程》【年(卷),期】2012(020)002【总页数】4页(P27-29,33)【关键词】逆向工程;三角网格;孔洞修补;顶点平滑度【作者】闫涛【作者单位】南通大学计算机科学与技术学院,江苏南通226019【正文语种】中文【中图分类】TP391.41STL(Stereolithogrphy Interface)文件格式是由美国3DSystem公司于1987年定制的,其使用三角形面片来表示三维实体模型,己成为众多CAD软件的标准数据输入和输出模块,也被视为正、逆向工程设计转换到快速原型的一种公认的标准,当模型由CAD或逆行工程软件建成后,即可直接输出到快速原型系统构建实体模型。
一种面向孔洞修复的三角网格复杂孔洞分割方法
135计算机与多媒体技术Computer And Multimedia Technology电子技术与软件工程Electronic Technology & Software Engineering1 引言三角网格具有简洁、直观、描述能力强的特点,是一种应用十分广泛的几何模型表达形式,逐渐成为3D 打印技术的重要应用基础。
但是,在网格模型的构建和获取过程中,经常会产生各类网格模型的孔洞,严重影响了3D 打印模型的外观和质量。
因此,三角网格模型中孔洞的识别和修复成为提高3D 打印质量的关键。
目前,国内外许多学者对三角网格模型的孔洞修复方法进行了深入研究,其中比较典型的修复方法为:根据孔洞的点分布,计算特征平面,将孔洞点投影到特征面上进行分元,然后采用隐式函数[1]、径向基函数[2, 3]、波前法[4]等,将特征面上的点映射到三维模型上。
该类方法得到的填孔面的形态往往比较理想,但适用场景较为苛刻,在简单孔洞形态下能够获取理想的效果,但对复杂孔洞形态可能出现映射失败或者映射错误的情况,导致填孔效果差。
学者Jun [5]提人脸图像的影响,评价结果更全面,更贴合人脸识别系统最终的需求。
实验证明,本文方法能够针对不同因素引起的图像质量变化给予准确的评估, 筛选出高质量的人脸图像。
参考文献[1]邹国锋,傅桂霞,李震梅,.融合二级评价指标的人脸图像质量评价方法.山东大学学报(工学版),2016,46(2):6-13.[2]黄法秀,高翔,吴志红,陈虎.基于CNN 的人脸图像亮度和清晰度质量评价[J].计算机工程与设计,2020,41(07):2004-2010.[3]程换新,侯晓克.基于迁移学习的人脸图像质量评估[J].电子测量技术,2019,42(12):113-117.[4]Grother PJ, Quinn GW, Phillips PJ. Report on theevaluation of 2D still-image face recognition algorithms. NIST Interagency Report, 2010, 7709: 106. [5]唐鉴.人脸识别中的图像质量评价方法研究[D].广州:华南理工大学,2011.19-41[6]李春芝,陈晓华.基于人脸图像的质量评价模型及应用[J].电脑编程技巧与维护,2012(20):93-94.[7]王亚,朱明,刘成林.基于CNN 的监控视频中人脸图像质量评估[J].计算机系统应用,2018,27(11):71-77[8]林增敏,洪朝群,庄蔚蔚.融合人脸跟踪和聚类的人脸图像去一种面向孔洞修复的三角网格复杂孔洞分割方法张善辉1 武伟2 魏威2 边静2(1.山东大学控制科学与工程学院 山东省济南市 250061 2.山东山大华天软件有限公司 山东省济南市 250101)出一种将复杂孔洞剖分为简单孔洞再进行修补的算法,解决了投影过程中具有自相交边界的孔洞剖分和修补,但在处理其他类型复杂孔洞及修补效果方面,特别是非投影过程的自相交边界问题,并不是很理想。
基于隐式曲面和域分解的多边形网格模型孔洞修补
基于隐式曲面和域分解的多边形网格模型孔洞修补刘光帅;李柏林;何朝明【摘要】A new approach based on implicit surface interpolation combined with domain decomposi-tion is proposed for filling complex-shaped holes in a large polygon mode I. First, an implicit surface from an incomplete polygon model was defined by a radial basis function and a surface from holes area of the in-complete polygon model was constructed.Second,the domain decomposition method was used to treat the large polygon model,which global domain of interest was divided into smaller domains to solve the set of small local st,the local solutions were then combined with weighting coefficients to obtain a global solution, which validity was demonstrated to be effective by using it to fill various holes in complex polygon models with arbitrary topologies.%针对多边形网格模型中存在的复杂形状孔洞,提出了一种基于隐式曲面插补和域分解方法的孔洞修补算法.首先,利用径向基函数定义一张光滑的隐式曲面,完成不完全多边形网格模型孔洞区域曲面的构造;其次,利用域分解方法将多边形网格模型的域空间分解成若干子域,并完成子域局部问题的求解;最后,子域局部解考虑其权重系数后可获得模型全局解.任意拓扑的复杂多边形网格模型的孔洞修补实例验证了该算法的有效性.【期刊名称】《机械设计与制造》【年(卷),期】2011(000)009【总页数】3页(P263-265)【关键词】孔洞修补;隐式曲面;径向基函数;域分解方法【作者】刘光帅;李柏林;何朝明【作者单位】西南交通大学机械工程学院,成都610031;西南交通大学机械工程学院,成都610031;西南交通大学机械工程学院,成都610031【正文语种】中文【中图分类】TH16;TP391.41 引言近年来,在多边形网格模型处理的研究领域中,大规模的、复杂的、任意拓扑的不完全多边形网格模型的孔洞修补处理受到了国内外学者的极大关注。
基于径向基函数的三角网格曲面孔洞修补算法
第17卷第9期2005年9月计算机辅助设计与图形学学报JO U RNAL OF COM PU T ER -AI DED DESIGN &COM PU T ER GRA PHI CS V ol 17,No 9Sep ,2005收稿日期:2004-04-12;修回日期:2004-08-13基金项目:国家自然科学基金(60273097);霍英东教育基金会第九届高校青年教师基金(03-91053);航空科学基金(03H52059)基于径向基函数的三角网格曲面孔洞修补算法杜 佶 张丽艳 王宏涛 刘胜兰(南京航空航天大学CAD CAM 工程研究中心 南京 210016)(djdu@163 com)摘要 提出一种对三角网格曲面中孔洞的修补算法,在对孔洞多边形进行填补后,使用径向基函数建立孔洞曲面的隐式方程,然后把新增加的三角片顶点映射到曲面上 由于在修补时不仅考虑了对孔洞多边形的三角划分问题,还考虑了孔洞周围的几何信息,使得修补后的孔洞曲面与原始曲面光滑地融为一体,尤其对曲率变化较剧烈部位处的孔洞取得了理想的修补效果关键词 径向基函数;隐式方程;隐式曲面;孔洞修补中图法分类号 T P391 72Hole Repairing in Triangular Meshes Based on Radial Basis FunctionDu Ji Zhang Liyan Wang H ongtao Liu Sheng lan(Resear ch Center o f CAD CA M Engineering ,Nanj ing Univ ersity of A eronau tics &Astronau tics ,Nanj ing 210016)Abstract In this paper,a novel hole -repairing algorithm is put forw ard T he algorithm mainly contains three steps At the first step,an implicit surface is fitted to the vertices near the hole based on the radial ba -sis function And at the second step,the hole is repaired by iteratively adding new triangles from the bound -ary to the center of the hole Finally at the third step,the vertices of added triangles are m apped to the im -plicit surface to make the repaired area smoothly blended w ith its vicinity Since both the triangulation of holes and the peripheral geometry character of holes are taking into account during the hole repairing,the consistency betw een the hole and the orig inal surface can be guaranteed As shown in the paper,excellent results have been achieved in the hole repairing experiments,especially for those w ith large curvature changesKey words radial basis function;implicit function;implicit surface;hole repairing1 引 言三角网格是最常用的几何模型表示形式之一,被广泛应用于计算机图形学、几何建模等领域 随着现代测量技术的发展,人们可以比较方便地根据实物测量数据重建复杂形体的三角网格模型,一些光学测量设备甚至能够直接输出被测物体的三角网格模型 然而在某些情况下,根据测量数据重建得到的网格模型往往会存在一些不希望有的孔洞 比如,夹具与模型曲面的接触部位无法测量、样件本身已有损坏、光学测量中的视线遮挡等 目前,一些逆向工程软件在对输入的散乱数据点进行网格曲面重建时,也会在数据信息量不足的部位处产生孔洞 这些孔洞的出现不仅影响了模型的外观,也不利于许多后续处理 例如,对实物进行有限元分析时,孔洞的周围会出现应力集中,使得分析不准确;对模型进行快速原型制造也需要模型具有封闭结构 因而对三角网格曲面进行孔洞修补是十分必要的早期的孔洞修补算法主要考虑如何对孔洞区域进行三角化 Leong等[1-2]给出了采用孔洞多边形的顶点构造新的三角片的算法,这种算法是直接对孔洞边界进行三角剖分,没有增加新的三角片顶点,因而难以获得较好的用于填补孔洞的三角片形状 张丽艳等[3]提出了一种三角片自然增长的修补算法,该算法通过建立空间孔洞多边形的特征面,把对空间孔洞多边形的三角划分问题投影到平面上进行处理;然后根据投影后的孔洞多边形边界的夹角关系不断生成新增的三角片来填充孔洞;这样被填充区域的三角片形状较为优化,避免了狭长及错误三角片的出现,而且新产生的修补三角片的形状及密度(三角片大小)与孔洞周围原有三角网格相协调 这些算法适用于对形状接近平面的孔洞进行修补,如果用于修补曲面上曲率发生较大变化处的孔洞时,则修补的部分与其周围的原网格曲面不能光滑连接,难以获得理想的修补效果近期的孔洞修补算法,在对孔洞多边形进行三角划分的同时,也注意考虑修补后的孔洞区域同周围原始网格曲面的光滑拼接问题,使修补后的孔洞曲面能更接近模型的原始形状 张丽艳等[4]提出一种孔洞的光滑填充算法,该算法构造了一组截平面,利用孔洞周围的三角片同截平面的交点构造B样条曲线来增加孔洞内的采样点;然后再对新增采样点与孔洞边界上的顶点进行三角化 该算法部分解决了被修补区域同原始曲面的光滑拼接问题,但当模型在产生孔洞的区域内有明显的不同于其周围曲面曲率的几何形态时,就无法取得较好的修补效果 Liepa[5]则采用另外一种思路:先对孔洞多边形的边界直接用三角片进行连接填充,然后采用细分和边交换方式消除形状不好的新增三角片;最后采用网格光顺的方法,对新增三角片的顶点位置进行调整 因为在顶点位置调整时用到了孔洞周围三角片的位置信息,所以能够得到比较光滑的修补效果,但是该算法在填充孔洞时需要不断计算填充三角片之间边长和内角关系,来生成更多的三角片,并进行边界调整,因而运算较为费时 Davis等[6]采用体数据场融合的方法进行孔洞修补,该算法通过迭代计算扩展体数据场的描述范围,最终建立一个能够描述整个孔洞及其周围曲面的场函数,再用M C(M arching Cube)算法网格化显示整个模型 该算法能对各种形式的孔洞取得较好的修补效果,但由于要用M C 算法整体重新输出修补后的孔洞曲面,因此会改变原有的网格模型本文提出一种孔洞修补算法,基本思想是通过径向基函数建立描述孔洞及其周围区域的拟合曲面,使得修补后的网格都位于该曲面上 算法首先应用文献[3]的方法对孔洞进行填充;然后根据孔洞周围网格曲面的信息,使用径向基函数来构造一个隐式曲面;最后,应用梯度下降法,将第一步中产生的新增三角片顶点沿曲面梯度方向调整到所拟合的隐式曲面上 由于在构造隐式曲面时用到了孔洞周围三角片顶点的法矢信息,反映了曲面曲率方向的变化趋势,所以建立的隐式曲面比较符合模型在孔洞周围的原始形状,最终的填充部分同整体曲面能够光滑地融合在一起,得到了理想的修补效果2 基于径向基函数的隐式曲面给定R3空间的n个散乱点{c1,c2, ,c n},每一个点都有一个约束值{h1,h2, ,h n},如果可以构造一个函数f(r)对每一个散乱点都能满足f(c i)= h i,那么由这些散乱点可以定义一个隐式曲面方程f(r i)=0 通常在构造一个隐式曲面时,对生成的曲面要求通过的散乱点称为插值约束点,其他的散乱点称为附加约束点使用径向基函数建立的隐式曲面方程可以被定义为f(r)= n j=1w j (r-c j)+P(r)=0其中,r表示生成曲面上的任意数据点,(c j)表示定义该方程的散乱点,称为采样点,w j表示对应于每一个采样点的权值,P(r)是一个一阶多项式 对任意一点(x,y,z),P(r)的形式为P(r)=p0+p1x +p2y+p3z, (r-c j)就是径向基函数,Carr等[6]对径向基函数的各种表达形式做了论述,一般而言,在三维空间进行散乱点插值时常采用的径向基函数形式为 (r=|r|3为求解权值和多项式系数,要求满足插值约束条件f(c i)= n j=1w j (c i-c j)+P(c i)=h i(1)和正交条件nj=1w j= n j=1w j c x j= n j=1w j c y j= n j=1w j c z j=0(2)其中,i=1,2, ,n这里令 ij= (c i-c j),那么由式(1),(2)可以得到19779期杜 佶等:基于径向基函数的三角网格曲面孔洞修补算法11 12 1n1c x1c y1cz 121 22 2n1c x2c y2c z2 n1 n2 nn1c x n c y n c z n11 100 0c x1c x2c x n000 c y1c y2c y n000 c z1c z2 c z n00 0w1w2w np op1p2p3=h1h2h n(3)式(3)左边的矩阵是半正定的,因而存在惟一的一组解(w1,w2, ,w n,p0,p1,p2,p3) 将求得的结果代入式(1),就可以得到该隐式曲面方程f(x,y,z)= nj=1w j((x-c x j)2+(y-c y j)2+(z-c z j)2)3+p0+p1x+p2y+p3z=0(4) 使用径向基函数插值散乱数据点存在的主要问题是:当被插值的散乱点数量增多时,求解系数的线性方程组不断扩张,求解运算量迅速增大,造成对大数量的散乱点求解时间太长,甚至无法求解,因而限制了其应用范围 针对这个问题,文献[7-8]对其进行了研究,提高了径向基函数的求解能力,可以对超过十万数据点的模型进行求解 本文在使用径向基函数构造曲面方程时,所取的采样数据点是孔洞边界周围的数据点,数据量较少,因而求解时间较短,直接采用高斯消元法即可3 具体算法对于封闭结构的三角网格曲面,如果网格曲面中没有孔洞,那么该曲面中的每一条边都有两个邻接三角片,构成孔洞的边则只有一个邻接三角片,参照文献[3]给出下面的定义:定义 如果存在某条边只有一个邻接三角片,则该条边是构成孔洞多边形的一条边,我们称之为边界边;如果懦条边有两个邻接三角片,则该条边称为内部边 由边界边首尾相连组成的封闭空间多边形称为孔洞边界;孔洞边界及其周围相邻网格曲面组成的区域称为孔洞区域;使用径向基函数建立的描述孔洞区域的隐式曲面称为孔洞曲面本文的孔洞修补算法主要分为以下几步:孔洞填充,基于径向基函数的孔洞区域隐式曲面方程的建立及新增三角片调整 3 1 孔洞填充由于直接对空间孔洞多边形进行三角划分较为复杂,文献[3]给出了一种算法,把空间三角划分问题转移到平面上来处理,该算法在对孔洞填充后,填充区域的新增三角片形状较为优化,密度同周围原始网格保持一致 因此,本文在孔洞填充步骤使用该算法,并对其进行了改进,增加了孔洞边界预处理步骤,有利于填充后的网格形状更加均匀3 1 1 孔洞边界预处理要对孔洞进行修补,首先要得到孔洞多边形的边界,文献[3]算法中对孔洞多边形进行了检测和排序 然而在实际测量中,由于孔洞区域的数据信息量少,曲面重建后在边界处的三角片形状不太理想,会出现狭长三角片,这些狭长三角片上的边界边同整个孔洞边界上其他边的长度不协调,在孔洞填充时对新增三角片的形状造成不好的影响 为了降低这种影响,本文给出一个对边界的预处理步骤,以减少边界上狭长三角片的数目如图1所示,边界预处理的步骤如下:图1 孔洞边界的预处理Step1 计算孔洞边界上所有边界边的平均边长l ave Step2 由孔洞边界上第一条边开始遍历,如果存在某条边e ij=(P i,P j)的长度l ij>k l ave,k为比例系数,(本文取k=2),则计算边e ij的中点P new,在孔洞边界链表中删除边e ij,增加新边(P i,P new)和(P new,P j),并在网格模型中,删除三角片 PP i P j,增加新三角片 P i PP new和 PP new P j,同时更新数据结构中的点面边之间的关系Step3 如果Step2不产生边的变化,则退出循环;否则返回Step2,重新遍历经过这样的边界预处理,可以得到边长比较均匀的孔洞边界,以利于后续步骤中产生的新增三角片的大小和形状与孔洞周围的三角片分布协调一致 3 1 2 基于特征面的填充算法文献[3]中对孔洞修补的主要原理是通过建立空间孔洞多边形的特征面来完成孔洞多边形的填充过程,本文采用该算法,主要填充步骤如下: Step1 孔洞多边形特征面的确定 对每个孔洞,计算其1978计算机辅助设计与图形学学报2005年孔洞边界上所有顶点的形心并将其作为特征面的原点,并用主元素分析法计算特征面的法矢,从而得到孔洞多边形的特征面 由特征面原点和法矢,建立一个局部坐标系,把孔洞多边形投影到特征面上成为特征多边形,并将特征多边形坐标转化为局部坐标Step2 构造新三角片 每次寻找特征多边形中夹角最小的一对邻边,按照给定的规则,构造新的三角片;然后更新孔洞多边形,直至新增三角片覆盖整个孔洞Step3 新增三角片合法性检查 该步骤用于检查新增三角片是否存在法矢反向及三角片自交3 2 孔洞曲面隐式方程的建立应用文献[3]的算法对孔洞填充后,新增三角片基本上都位于孔洞多边形的特征面上,对于位于曲面曲率变化较剧烈部位的孔洞,这样的填充结果不能真实反映孔洞的原始形状,需要对填充的网格曲面做进一步调整 本文使用径向基函数建立描述孔洞曲面的隐式方程,并以该曲面为标准,对新增三角片的顶点进行调整3 2 1 插值约束点的采集要建立基于径向基函数的孔洞曲面方程,首先要采集足够的散乱点数据,对每一个散乱点,都有一个约束值与之对应 对于位于曲面上的点,要求满足f(c i)=0,这些散乱点在建立孔洞曲面方程时,称为插值约束点 但只有插值约束点并不足以描述一个孔洞曲面,对一个孔洞曲面方程,通常用f(c i) >0描述曲面外部的点,用f(c i)<0描述被包围在曲面内部的点,这些点在用于建立孔洞曲面的隐式方程时被称为附加约束点对一个孔洞多边形,其边界上的每一个顶点及边界周围的三角片顶点都可被认为是描述孔洞曲面的插值约束点;但如果仅仅使用构成孔洞边界的三角片顶点来描述该曲面,信息量明显是不够的 因而本文利用三角网格曲面良好的拓扑关系,以孔洞边界为中心不断向外扩展,采集其相邻几层三角片的顶点作为插值约束点寻找相邻几层三角片的顶点的具体过程如下:Step1 读取构成孔洞边界E的每一条边的顶点,加入数组MStep2 遍历数组M中的每一个顶点,读取其相邻三角片的顶点信息,逐一判断这些顶点是否存在于数组M,如果不存在,则将其加入数组,这样就采集到了由孔洞边界向外的第一层三角片顶点Step3 重复Step2,对新增加的顶点重复进行遍历,由孔洞边界不断向外扩展,直到向外扩展达到所设定的层数时,过程停止为了对孔洞曲面有充分的描述,对不同大小的孔洞,其向外扩展的层数可以自行设定,一般可以认为读取了由孔洞边界向外4层的三角片时就达到了需要采集的顶点数量3 2 2 附加约束点的采集采集到足够的插值约束点后,还需采集一定数量的附加约束点Turk等[9]给出了三种附加约束点的获取方式,包括:模型内部寻找正值约束点,模型外部寻找负值约束点以及使用法矢约束点 其中利用法矢约束获取附加约束点是在所有插值约束点的法矢方向上确定约束点,这样得到的附加约束点能反映曲面的曲率方向变化趋势,更好地描述曲面的几何形状 本文算法采用法矢约束的方法对孔洞曲面上的每一个插值约束点采集相应的附加约束点 Step1 计算采集到的所有插值约束点的法矢 由于插值约束点是网格曲面中三角片的顶点,因而法矢可以通过对其相邻三角片的法矢进行加权平均估算得到[10]Step2 对每一个插值约束点,在其法矢方向上的一个较短距离的位置处计算一个点,新得到的点就作为该顶点对应的附加约束点,本文在法矢方向上0 1个单位长度处取值 Step3 所有插值约束点的附加约束点得到以后,结束遍历附加约束点在插值约束点的法矢方向上,其位于曲面的外部,隐式曲面方程在这些位置取正值 由于所有附加约束点距离曲面的长度相同,可以认为这些点位于孔洞曲面的一个等距面上,具有相同的约束值 本文为计算方便,附加约束点取值为f(c i)=13 2 3 隐式方程的建立现在已经得到了足够的约束条件,把所有的插值约束点和附加约束点数据代入到式(3)中,建立一个(2 n+4) (2 n+4)的矩阵,这里n代表插值约束点的数量 对于孔洞曲面,使用径向基函数建立其隐式方程时所需要采集的散乱点数量不多,因而直接使用高斯消元法求解矩阵,即可求得所有散乱点对应的权值和多项式系数(w1,w2, ,w n, p0,p1,p2,p3),把结果带入式(4)中,就得到了用径向基函数建立的孔洞曲面方程3 3 新增三角片顶点向曲面的调整建立了孔洞曲面的隐式方程后,开始对新增三角片进行调整 调整方法是把新生成的三角片顶点调整到所拟合的孔洞曲面上,使得新增三角片紧贴该曲面 Jin等[11]利用径向基函数解决隐式曲面插补问题,为了避免求解大规模散乱点带来的时间复19799期杜 佶等:基于径向基函数的三角网格曲面孔洞修补算法杂度问题,提出了一种细分的方式:读入一个简单的网格模型,用径向基函数建立该模型所描述的隐式曲面;然后对原始三角片进行细分,并调整细分后的新增三角片的位置,使细分后的网格模型更加光顺 本文对新增三角片进行调整时,借鉴文献[11]的思路,使用梯度下降法把所有新增的三角片顶点沿曲面梯度方向向曲面逐步逼近,直到新生成的三角片顶点被调整到拟合的孔洞曲面上梯度下降法是一种对某个准则函数的迭代寻优算法,设f(r)是某个准则函数,r是一个向量,则f(r)在r的负梯度方向是f(r)减少最快的方向,沿此方向可最快到达逼近点 孔洞曲面方程的梯度为 f=( f x, f y, f z),由式(4)可以得到fx=3 nj=1w j(x-c x j)((x-c x j)2+(y-c y j)2+(z-c z j)2)+p1,fy=3 nj=1w j(y-c y j)((x-c x j)2+(y-c y j)2+(z-c z j)2)+p2,fz=3 nj=1w j(z-c x j)((x-c x j)2+(y-c y j)2+(z-c z j)2)+p3 具体实现时,把每一个新增三角片的顶点r0代入到迭代计算式中,计算其被拉伸到的新的顶点位置r1,比较新的顶点位置同拉伸前的位置的差值 r1-r0 ,如果小于某一个给定的限定误差 时,可以认为新的顶点位置r1位于孔洞曲面上,迭代结束;否则,以r1替换r0,继续迭代 本文使用的迭代计算式为r1=r0-f(r0)f(r0) 2f(r0)把全部的新增三角片顶点调整到曲面上以后,这些三角片可被看成由原孔洞多边形的特征面拉伸到空间,并紧贴附在孔洞曲面上 由于曲面方程描述的是孔洞边界及其周围相邻几层三角片所构成的孔洞区域,因而经过调整后的新增三角片顶点同孔洞周围的三角片的顶点是位于同一曲面上的,这保证了修补后的孔洞曲面同原始曲面有很好的拼接,并且同原始曲面保持一致的曲面形式4 实 例运用本文提出的算法,在主频2 6GHz、内存256MB的Pentium 计算机上对多个包含孔洞的三角网格曲面进行了修补 图2所示为对基座模型腹部上孔洞的修补效果 由图2可见,本文算法在对曲面上曲率变化平缓的区域所出现的数据缺损比较严重的孔洞有很好的修补效果,修补后的孔洞曲面不但同周围曲面光滑连接,而且比较好地还原了模型的形状a原始孔洞模型b填充后的结果c最终的修补效果图2 基座模型腹部的修补图3所示为对带有多个孔洞的足部模型的修补实例,这里将本文算法的修补效果同用文献[4]算法修补的效果进行比较 文献[4]利用孔洞周围数据拟合多条B样条曲线,然后在样条曲线上采样新的顶点用于构造新增三角片,这种局部样条拟合方法在某些应用中取得了较好的光滑修补效果 本文提出的基于径向基函数进行局部隐式曲面插值的修补算法在两个方面优于局部样条拟合方法,一是在对曲率变化剧烈处所出现的孔洞的修补效果有明显提高,如图3a中B号孔洞的修补;如图3所示,本文算法更真实地反映了曲面的实际形状 本文算法的另一个优势是填充区域的网格分布同周围原始网格比较协调,形状和密度均保持一致,这可以从图3d和3e所示的网格结构中明显看出 在不改变原始网格的基础上,本文算法保持填充区域的网格分布与原网格分布相协调,也避免了文献[6]需要改变原始网格的问题1980计算机辅助设计与图形学学报2005年a原始孔洞模型b本文修补结果c 文献[4]算法修补结果d 本文修补结果的放大图局部样条拟合法修补结果的放大图图3 足部模型的修补分析本文提出的修补算法优于文献[4]的局部B 样条插值方法的原因主要是:局部拟合每条B 样条曲线只用到了孔洞周围一个截面上的少量数据,而且拟合B 样条曲线需要首先对数据点进行参数化,但由于孔洞部分有较多的数据缺失,在曲率变化剧烈的情况下,数据点的参数化与真实曲线的弧长参数化之间存在较大的偏差,这样得到的B 样条曲线本身对孔洞区域曲面形式的描述就存在较大的偏差 本文算法则是利用孔洞周围的三角片顶点位置和其法矢方向两类约束条件在孔洞区域建立一个隐式曲面方程,而且不需要对插值数据点进行参数化,因而对填充后的曲面形式以及原始曲面在孔洞区域的变化趋势有更精确的描述图4所示为对龙爪的指关节上的多个孔洞修补的结果,该实例进一步显示了应用本文算法对曲率变化剧烈部位出现的孔洞可以取得很好的修补效果a原始孔洞模型b 本文的修补效果图4 基座模型龙爪处的修补表1给出了以上实例中的计算数据统计,从中可以看出,本文算法主要的运行时间集中在隐式曲面的建立上,由于建立描述孔洞曲面的隐式方程所需要采集的约束点数量不多,因而高斯消元法进行矩阵求解所消耗的时间可以接受 而采用其他求解算法[7-8],表1中给出的求解时间还有待进一步缩短表1 孔洞修补的数据统计采集的约束点数量新增顶点数量新增三角片数量孔洞填充时间 s 隐式曲面建立时间 s 顶点调整时间 s 限定误差 基座腹部模型75847310880 2967 7351 1880 001足部模型洞A5581132840 0943 3750 4220 001洞B 7262175240 1566 7971 2500 001洞C 5161443440 0942 7180 3280 001龙爪模型洞A5882666360 1563 8280 8750 001洞B65242810260 3285 0791 7180 00119819期杜 佶等:基于径向基函数的三角网格曲面孔洞修补算法5 结论与展望本文在研究了已有的对空间多边形孔洞修补算法的基础上,提出一种基于径向基函数的孔洞修补算法 该算法使用径向基函数建立一个用来描述孔洞区域的隐式曲面方程,在对孔洞进行填充后,把新生成的三角片顶点映射到该曲面上,使得最终修补的孔洞曲面同其周围曲面保持良好的几何一致性 该算法特别适合对三角网格曲面上曲率变化剧烈部位出现的孔洞进行修补 实例证明本文算法稳定可靠,具有良好的修补效果目前本文提出的算法主要用于解决单一孔洞的修补问题,而在实际情况中出现的孔洞有很多种形式,为了进一步扩展径向基函数在孔洞修补方面的应用,下一步将研究基于径向基函数的岛屿孔洞、半封闭孔洞等多种孔洞形式的修补问题参 考 文 献[1]Leong K F,Chua C K,Ng Y M A study of stereolithographyfile errors and repai r Part1:gen eric sol ution[J] Internati onalJournal of Advanced M anufacturing Technology,1996,12(6):407~414[2]Leong K F,Chua C K,Ng Y M A study of stereolithographyfile errors and repair Part2:speci al cases[J] Internati onalJournal of Advanced M anufacturing Technology,1996,12(6):415~422[3]Zhang Liyan,Zhou Rurong,Zhou Laishui Research on the a-lgorithm of hole repairing i n mesh surfaces[J] Journal of Ap-plied Sciences,2002,20(3):221~224(in Chinese)(张丽艳,周儒荣,周来水 三角网格模型孔洞修补算法研究[J] 应用科学学报,2002,20(3):221~224[4]Zhang L i yan,Pan Xiaolin,An Luling A smooth hole filling a-lgorithm for triangle mesh s urfaces[J] Journal of Engineeri ngGraphics,2002,22(4):113~119(in Chinese)(张丽艳,潘小林,安鲁陵 网格曲面中孔洞的光滑填充算法研究[J] 工程图学学报,2002,22(4):113~119(in Ch-inese)[5]Liepa Peter Filling holes in meshes[C] Proceedings of theEurographics ACM S IGGRAPH Symposium on Processi ng,Aachen,Germany,2003 200~205[6]Davis J,M arschn e S R,Garr M,et al Filling holes in complexsurfaces using volumetric diffusi on[A] In:First Internati onalSymposium on3D Data Processing,Padua,2002 428~438[7]Carr1J C,Beatson R K,Cherrie J B,et al Reconstruction andrepresentation of3D objects w ith radial basis functions[A] In:Proceedings of the28th Annual Conference on Com puter Graph-ics and Interacti ve Techniques,New York,2001 67~76 [8]Nikita Kojekine,S avchenko V,Hagiwara I Surface recons truc-tion based on compactl y supported radial basis functions[M]In:Geom etric M odeli ng:Techn i ques,Applications,S ystemsand Tools Norw ell:Kluwer Academic Publishers,2004 218~231[9]T urk G,O Brien J F Variational implicit surfaces[R] T ech-nical Report GIT-GVU-99-15,Georgi a:Georgia Institute ofT echnology 1999[10]Ke Yinglin Geometric modeli ng for th ree-di mensional scattereddata and its application[D] Nanjing:Nanjing University ofAeronautics&Astronautics,1992(i n Chinese)(柯映林 离散数据的几何造型技术及其应用研究[D] 南京:南京航空航天大学,1992)[11]Jin X,Sun H,Peng Q S ubdivision i nterpolating implici t sur-faces[J] Com puters&Graphics,2003,27(5):763~772杜 佶 男,1978年生,硕士,主要研究方向为反求工程张丽艳 女,1967年生,博士,教授,博士生导师,主要研究方向为CA D CAM、反求工程王宏涛 女,1968年生,博士研究生,副教授,主要研究方向为CAD CAM、反求工程等刘胜兰 女,1972年生,博士,副教授,主要研究方向CA D CAM、反求工程等1982计算机辅助设计与图形学学报2005年。
基于区域生长的三角网格模型孔洞修补方法
基于区域生长的三角网格模型孔洞修补方法刘云华;吕剑;朱林;罗年猛【摘要】To recover the original shape of the imperfect triangular mesh model with missing sharp feature effectively, this paper proposes a hole-repairing method based on region growing. The basic procedures of the method are as follows:Hole boundaries are detected according to the topological relationship of the model. Taking hole boundaries as the starting point,mesh around holes are segmented into regions according to breath first research. The normal new facet is obtained by analyzing the geometric property of relevant feature region. Afterward, according to the obtained normal, an asynchronous growth of new mesh is realized through an iteratively way inward and meanwhile,a controlling signal is set for every hole boundary facet to control the asynchronism of region growing. New facets in different region are intersected to rest sharp feature line and feature corner. Experimental results show that the approach works well for recovering the original shape of imperfect model with missing sharp feature.%为复原残缺三角网格模型的原始形状,针对丢失尖锐特征的模型,提出一种基于区域生长的孔洞修补方法。
曲面特征恢复的三角网格模型孔洞修补算法
曲面特征恢复的三角网格模型孔洞修补算法贺强;张树生;白晓亮【摘要】In order to recover original shape of the holes in triangular meshes, a hole-repairing algorithm based on surface feature was proposed. First, the hole triangulation and subdivision were performed as coarse filling. Then, gauss ball was used to determine the hole neighbors and their surface types. Quadric surface equations were fixed by non linear least square. The hole neighbors of freeform were fitted by B spline surfaces. Finally, accurate positions of vertexes were acquired according to surface equations of the hole neighbors and the hole- rclmiring was completed. The experimental results show that the presented hole repairing algorithm can not only (ill the holes but also recover surface feature in the hole regions.%为了恢复三角网格模型中的孔洞处的真实形状,提出一种曲面特征恢复的孔洞修补算法.首先对模型中检测出的孔洞进行三角化并细分,完成孔洞的粗修复.然后利用高斯球确定孔洞的邻域及其曲面类型,对二次曲面类型的孔洞邻域进行非线性最小二乘拟合以获得曲面代数方程,对自由曲面类型的孔洞邻域则进行B样条曲面拟合.最后根据孔洞邻域的曲面方程获得孔洞内新增顶点在曲面上的精确位置,完成孔洞修复.实验结果表明,该孔洞修补算法不仅能完成孔洞区域的三角形填充,还能准确恢复出孔洞区域的曲面特征.【期刊名称】《哈尔滨工业大学学报》【年(卷),期】2011(043)011【总页数】5页(P120-124)【关键词】高斯球;孔洞邻域;曲面特征;孔洞修补【作者】贺强;张树生;白晓亮【作者单位】西北工业大学现代设计与集成制造教育部重点实验室,西安710072;西北工业大学现代设计与集成制造教育部重点实验室,西安710072;西北工业大学现代设计与集成制造教育部重点实验室,西安710072【正文语种】中文【中图分类】TP391由于物体表面的反射属性、结构闭塞等因素的影响,测量获得的三角网格模型中不可避免地存在孔洞.孔洞不仅影响模型的外观,而且不利于后续的几何处理.为了获得完整的网格模型,孔洞修补尤为关键.经过大量研究,出现了基于网格和基于体数据2类具有代表性的孔洞修补算法.基于网格的修补算法[1-8]首先寻找网格模型中的孔洞,然后对孔洞进行三角化并细分,最后对新增的网格顶点的位置进行光顺调整.基于网格的修补仅仅作用在孔洞及其邻域,可以保持远离孔洞区域的网格结构不变,修补后孔洞区域能与周围区域光滑融合,但这类算法对输入的模型有一定的质量要求且没有或较少考虑孔洞处的曲面信息,常常丢失孔洞处的曲面特征.基于体数据的网格修补算法[9-12]首先将网格模型转换为一种中间的体数据来表示,然后在体数据上进行修补操作.这类算法在处理三角面片自相交和重合的情况时比基于网格的算法更具优势,并能保证修复后输出的网格是封闭的,但输出的网格完全改变了原有模型中的连接关系,从而导致模型特征的丢失并会产生大量的、狭长的三角片.上述算法较少或基本没有考虑孔洞处的曲面特征,因而在对含有大量二次曲面的工业产品外形上的孔洞进行修补时,虽然可以得到完整且光顺的模型,但同时会丢失孔洞处的曲面特征.为了恢复孔洞处的真实形状,本文提出一种曲面的特征恢复的孔洞修补算法.首先对模型中检测出的孔洞进行粗修复,然后利用高斯球确定孔洞邻域及其曲面类型,最后根据孔洞邻域的曲面信息对孔洞内新增顶点的空间位置进行调整,获得精确的修复结果.对三角网格模型中检测出的孔洞,直接进行三角化处理,并根据孔洞周围网格的平均边长对孔洞区域内新增的三角形进行细分,这个过程称为孔洞的粗修复.三角形网格模型是由一系列顶点和三角形构成.2个相邻三角形通常有1条公共边,称这样的边为网格的内部边,而网格模型中的边界边和孔洞边通常只属于1个三角形.根据这一性质,对封闭的网格模型,如果存在某条边仅属于1个三角形,则此边就是构成孔洞多边形的1条边.由这样的边首尾相连就形成了1个孔洞.对于非封闭模型,提取出的孔洞中还包括了模型的边界轮廓.一般而言,孔洞的边的数量都小于边界轮廓的边的数量.根据这一经验,对检测出的所有孔洞按照边数量排序,不修补边数量最大的孔洞.对于特殊情况,则需要用户交互选择模型轮廓,并将其从孔洞集合中剔除.对孔洞多边形使用Delaunay方法直接三角化,完成孔洞区域的拓扑填充.对面积较大的孔洞,获得的修复网格与原始孔洞周围的网格的采样密度差异较大,这不仅影响了视觉效果而且破坏了孔洞区域及其邻域的拓扑一致性.为了获得与孔洞邻域网格密度相近的网格分布,本文对新增的三角形的边进行细分.细分的原理是首先计算孔洞周围(选择孔洞周围网格6~10层)三角形边长的平均值,然后检测孔洞内新增三角形的三边长,如果某边边长超过平均值,则将该边从中点处分裂,边分裂过程如图1所示.图2表示了孔洞的粗修复过程.其中图2(a)是含有孔洞的三角网格模型,图2(b)是采用Delaunay三角化的结果,图2(c)是细分光顺的结果.为了使孔洞修补的结果能较好逼近孔洞处的真实曲面,利用孔洞周围的网格(即确定孔洞的邻域)尤为关键.物体的外形通常都由大量的二次曲面和少量的自由曲面构成.在工业领域,这种情况尤为突出.鉴于高斯球[13-14]可以很好地识别二次曲面,本文利用三角网格模型良好的拓扑连接关系,向孔洞的周围逐层扩展,同时利用高斯球识别出扩展部分的曲面类型,并将曲面类型不一致的顶点剔除.孔洞邻域就是剩余的与孔洞处曲面类型一致的顶点的集合.在完成孔洞的粗修复后,向孔洞周围扩展6~10层三角形,获得初步的孔洞邻域点集.高斯映射是将曲面上任意一点的单位法矢的起点移动到坐标原点的过程.曲面上的点进行高斯映射后所得的结果是单位球内的一个点集.这个单位球就是高斯球.由高斯映射的定义可知,网格顶点的法矢量即为其在高斯球上的坐标.2.1.1 平面的高斯球平面点的法矢量均相等,因此平面的高斯球应该是一个点,但实际应用中,由于法矢估算不准确或噪声等原因,平面网格在高斯映射后的点会聚集在一个点区域中,如图3(a)所示.2.1.2 圆柱面的高斯球圆柱面上任意点的法向量都应该与其轴线的单位矢量n垂直,因此圆柱面上任意一点的高斯球坐标都在过原点且法向为n的平面上,该平面可以表示为(n,0).实际应用中,圆柱面类型的网格顶点在高斯映射后的点集近似地聚集在一个环状区域而不是严格位于同一平面,如图3(b)所示.该区域可以被最小二乘法拟合成一张平面(n*,d),d近似为0.2.1.3 圆锥面的高斯球圆锥上任意一点的法矢与轴线方向n的夹角与圆锥角的1/2 α互余.因此圆锥上任意点的高斯球坐标构成平面(n,sin α).由于网格噪声等原因,实际的圆锥网格高斯映射后的点集近似地聚集在一个环状区域而不是严格位于同一平面,如图3(c)所示.该区域可以被拟合成平面(n*,d).2.1.4 球面的高斯球球面上任意点的法向各不相同,因此球面上的点的高斯球坐标各不相同,如图3(d)所示.球面上各个点及其法矢量构成的直线之间的交点理论上应该都在球心处,而对实际应用中的球面网格则是在包含球心的一个点区域中,与平面的高斯映射类似.本文根据这个性质来识别球面.对初步的孔洞邻域点集进行高斯映射后,利用高斯球就可以对其进行精炼,进而得到孔洞邻域的曲面类型和邻域点集,孔洞邻域及其曲面类型的确定过程为:HN为初步的孔洞邻域点集,其高斯球坐标形成的点集为C,建立两者之间一一对应的索引关系.首先利用通用点聚类法判断HN是否为平面,该过程为:计算C的中心点Pc,然后计算C中每一个点与Pc的距离,如果该距离小于给定的阈值,则保留该点,否则抛弃该点.完成上述操作后,减小阈值,递归调用上述过程,直至C中的所有点到Pc的距离都小于给定的全局阈值或迭代次数达到设定的上限.此时若C中点的数量与HN中点的数量之比大于设定的有效点集率,则HN是1个平面区域.如果平面判定失败,则依次进行圆柱面、圆锥面的判定.此时需要判断C是否处于一块有效的平面区域,利用通用平面聚类法完成平面区域的判定.该过程为:对C中的点行最小二乘平面拟合,得到一个中心平面Pp.计算C中的点到平面Pp的距离,如果该距离小于给定的阈值,则保留该点,反之删除该点.完成上述操作后,减小阈值,递归调用上述过程,直至C中的所有点到Pp的距离都小于给定的全局阈值或迭代次数达到设定的上限.根据C中剩下的点,利用建立的索引关系,就可以得到HN中与孔洞区域曲面类型一致的顶点集合,即孔洞的邻域.以上曲面判定都失败后,还需对HN进行球面的判定.利用HN中的顶点和C中的法矢量确定的直线的交点来判定球面.若是球面类型的网格,这些直线会相交于球心附近,形成一个点区域,对该点区域进行通用点集聚类即可确定孔洞的邻域.若以上曲面类型的判定都失败,本文将这样的孔洞邻域归为自由曲面类型.孔洞邻域则为扩展部分的所有顶点.对平面孔洞,无需拟合平面(因为三角化后细分新增的顶点还是在平面上).对球面、圆柱面、圆锥面孔洞,则根据孔洞的邻域,使用非线性最小二乘拟合获得孔洞邻域的代数方程.该方程作为孔洞内新增顶点位置调整的依据;若孔洞邻域是自由曲面类型,本文采用文献[15]中的双三次B样条曲面拟合算法来确定孔洞邻域的潜在曲面.球面的代数方为式中:r为半径;(x0,y0,z0)为球心,是待求的参数.圆柱面的代数方程为式中:(x0,y0,z0)为待求的圆柱轴线上任意一点;(nx,ny,nz)为待求的圆柱的轴线方向;r为待求的截面圆的半径.圆锥面的代数方程为式中:α为待求的圆锥角的1/2;(x0,y0,z0)为待求的圆锥的顶点;(nx,ny,nz)为待求轴线方向.本文采用 Levenberg-Marquardt[16]算法求解曲面方程中的待求参数.设:F(x)为二次曲面的代数方程;x={x1,x2,…,xn}为待求参数组成的向量.对曲面方程中待求参数进行泰勒展开得设xk为第k次迭代获得的待求参数向量.该求解过程为式中:δ为x中参数的偏差;J为m×n阶雅可比矩阵;m为孔洞邻域点的数量;μ>0为用户设定的参数,初始设为 10-6.上述过程首先需要设定待求参数即x0的初始估计值.对球面拟合,球心的初值设为孔洞邻域内任意2点和其法矢量构成的直线的交点,半径初值为其中1点到该交点的距离.对圆柱面拟合,利用任意2点及其法矢量,根据法矢量与轴线垂直的性质就可估算轴线,其中一点到轴线的距离即为半径.对圆锥面拟合,选择不在同一平面的3点及其法矢量,利用法矢量与轴线的夹角为圆锥角的1/2这个性质就可计算半径、轴线方向、圆锥角、圆锥顶点.由孔洞粗修复产生的新增顶点,如果孔洞邻域曲面类型是平面,则无需进一步处理,修补完成.若是球面、圆柱面和锥面中的任何一种,则需要利用过程2中获得的代数方程计算新增顶点在曲面上的真实空间位置.对新增顶点pi=(xi,yi,zi),其法矢量n=(nx,ny,nz),得到过该点且方向为法矢量的直线方程为式(6)与孔洞邻域曲面代数方程联立求解就得到孔洞内的新增点的空间坐标.若孔洞邻域是自由曲面类型,本文采用文献[15]的网格参数化算法对粗修复的网格进行参数化,获得孔洞处填充的顶点的参数值,再将参数值带入由孔洞邻域拟合得到的B样条曲面方程中就获得了孔洞处新增顶点的空间位置.在VS2005的环境下实现了算法,在主频1.8 G,内存512 M的PC机上运行程序,且采用VTK(Visualization Toolkit一个面向对象的可视化类库)显示孔洞模型及其修补结果.为了更好地说明孔洞修补过程,本文以图4的球面孔洞为例详述其修补过程.图4(a)是原始的球面孔洞模型,其真实球心坐标为(0,0,0),半径为 8 mm.图4(b)是孔洞粗修复的结果即完成了孔洞多边形的三角化和细分.对孔洞邻域进行拟合得到的球心为(-0.000 422,0.000 116,-0.000 208),半径为7.999 997 mm,与真实情况的差异非常小,因此利用拟合的结果能精确恢复孔洞处的曲面特征,如图4(c)所示.图5是圆锥面孔洞的修复,图6是自由曲面孔洞的修复,图7是多种曲面类型孔洞的修复.从多种曲面类型孔洞的修补实验可知,除了平面类型的孔洞,孔洞粗修复后产生的新顶点都偏离了其在曲面上的真实位置,而采用本文算法处理后,能精确地恢复孔洞处的曲面特征.1)通过提取孔洞多边形,孔洞三角化和细分完成了孔洞区域的拓扑填充.2)利用高斯映射确定了孔洞邻域及其曲面类型,并利用非线性最小二乘拟合得到相关的曲面参数.3)利用孔洞邻域的曲面信息,完成了孔洞区域曲面特征恢复的修补,实验结果证明了算法的有效性.国家自然科学基金资助项目(60573177).张树生(1956—),男,教授,博士生导师.【相关文献】[1]LIEPA P.Filling holes in meshes[C]//Proceedings of Eurographics/ACM SIGGRAPH symposium on Geometry processing. Switzerland:Eurographics Association,2003:200-205.[2]CHUI C,LAI M J.Filling polygonal holes using C1 cubic triangular spline patches [J].Computer Aided Geometry Design,2000,17(4):297 -307.[3]BRANCH J,PRIETO F,BOULANGER P.Automatic Hole-Filling of triangular mesh using local radial basis function[C]//Proceedings of the third International Symposium on 3D Data Processing,Visualization and Transmission.Washington,NC:IEEE,2006:727 -734.[4]TEKUMALLA L S,COHEN E.A Hole-Filling Algorithm for Triangular Meshes[M].USA:Technical Report UUCS-04-019,School of Computing University of Utah,2004.[5]PERNOT J P,MORARU G,VERON P.Filling holes in meshes using a mechanical model to simulate the curvature variation minimization[J].Computer & Graphics,2006,30(6):892-902.[6]JUN Y.A piecewise hole filling algorithm in reverse engineering[J].Computer-Aided Design,2005,37(2):263-270.[7]张丽艳,周儒荣,周来水.三角网格模型孔洞修补算法研究[J].应用科学学报,2002,20(3):221-224.[8]张洁,岳玮宁,王楠,等.三角网格模型的各向异性孔洞修补算法[J].计算机辅助设计与图形学学报,2007,19(7):893 -897.[9]DAVIS J,MARSCHNER S R,GARR M,et al.Filling holes in complex surfaces using volumetric diffusion[C]//Proceedings of First International Symposium on 3D Data Processing,Visualization and Transmission.Washington,NC:IEEE,2002:428-438. [10]NOORUDDIN F S,TURK G.Simplification and repair of polygonal models usingvolumetric techniques[J].IEEE Transactions on Visualization and Computer Graphics,2003,9(2):191 -205.[11]JU T.Robust repair of polygonal models[J].ACM Transaction on Graphics,2004,23(3):888 -895.[12]BISCHOFF S,PAVIC D,KOBBELT L.Automatic restoration of polygon models [J].ACM Transaction on Graphics,2005,24(4):1332-1352.[14]丁展,陈志杨,张三元,等.基于Gauss Ball的二次曲面细分解与识别[J].计算机辅助设计与图形学学报,2007,1(19):31-36.[15]白晓亮.逆向工程中混合CSG/B-rep模型重构技术研究[D].西安:西北工业大学,2005. [16]MADSEN K,NIELSEN H B.Method for Non-Linear Least Squares Problems[M].Copenhagen:Technical University of Denmark,1999.。
利用RBF神经网络实现三角网格模型的孔洞修补
利用RBF神经网络实现三角网格模型的孔洞修补余水晶【摘要】本文提出一种利用径向基函数(RBF)神经网络实现三角网格曲面孔洞的修补算法,首先用孔洞边界周围的三角片顶点作为学习样本训练RBF网络,然后对孔洞进行平面填充,获得新增三角片的顶点,最后用已训练好的RBF网络将其优化,实现三角网格孔洞的修补。
%This paper presents a algorithm for the reconstruction of triangular mesh surfaces using the radial basis function (RBF) neural network. Firstly, the RBF network is trained by using the triangle mesh vertices around the hole boundary as studying samples. Then the holes are filled in the hole, and the added vertices are obtained. Finally, thetrained RBF network is used to optimize the mesh, and realize the repair of triangular mesh.【期刊名称】《河南科技》【年(卷),期】2015(000)013【总页数】2页(P30-31)【关键词】神经网络;逆向工程;孔洞修补【作者】余水晶【作者单位】海南省技师学院,海南海口 571100【正文语种】中文【中图分类】TP391逆向工程(Reverse Engineering)是利用实物模型测得的数据构造CAD模型,继而进行分析制造。
在逆向工程中,三角网格模型是一种非常通用的数据模型。
利用测量设备可获得实体的点云数据,然后对点云数据进行三角网格化处理就可得到三角网格模型。
三维网格补洞算法(RadialBasisFunction)
三维⽹格补洞算法(RadialBasisFunction) 在逆向⼯程中,由于设备或模型的原因,我们获取得到的三维模型数据往往并不完整,从⽽使得⽣成的⽹格模型存在孔洞,这对后续的模型分析会造成影响。
下⾯介绍⼀种基于径向基函数(RBF:Radial Basis Function)的三⾓⽹格补洞⽅法。
Step 1:检测孔洞边界 三⾓⽹格是由⼀系列顶点(V)以及由这些顶点所构成的三⾓⾯⽚(F)所组成,由三⾓⾯⽚可以得到⽹格的边(E)。
通常⼀条边连接两个三⾓⾯⽚,这种边称为⽹格内部边,⽽如果某条边仅连接⼀个三⾓⾯⽚,那么称这条边为⽹格边界边,所有的边界边按顺序连接之后就形成了⽹格的孔洞。
Step 2:初始化⽹格 为了使孔洞填充简单、健壮,可以采⽤最⼩⾓度法进⾏⽹格修补,具体步骤如下: (1)得到孔洞边界点信息,计算边界边长度的平均值l。
(2)计算每个边界点的两条相邻边的夹⾓⼤⼩。
(3)找出具有最⼩夹⾓的边界点,计算它的两个相邻边界点的距离s,判断s < 2×l是否成⽴:若成⽴,则按下图所⽰增加⼀个三⾓形,若不成⽴则增加两个三⾓形。
(4)更新边界点信息。
(5)判断孔洞是否修补完整,若未完整,转(2),否则结束。
Step 3:最⼩⼆乘⽹格 初始化补洞得到的⽹格质量不是很好,我们需要优化⽹格顶点的位置,优化的条件是:其中d i为顶点v i的1环邻域顶点数。
上式可以⽤⼀个线性⽅程组来描述:LV = 0,其中L是Laplace矩阵,具体形式为,矩阵L的秩等于n –k,n为⽹格顶点的数⽬,k为⽹格连通区域的个数,如果⽹格是全连通的,那么矩阵L的秩是n – 1。
因此如果我们要使⽅程有解,需要加⼊m(m ≥ k)个控制顶点坐标v s作为⽅程的边界条件,在实际中我们将初始化⽹格的边界顶点作为控制顶点。
其实上述线性⽅程组的求解等价于如下能量函数最⼩化的求解: 能量函数的第⼀部分是使得⽹格顶点尽量光滑,即每个顶点位于其1环邻域顶点的中⼼,第⼆部分是为了控制顶点的位置满⾜要求。
曲率约束的隐式曲面三角网格化
曲率约束的隐式曲面三角网格化范媛媛;杨斌【摘要】提出一种有效的隐式曲面三角网格化算法.从隐式曲面上的一个种子点开始,生成网格的边界作为扩张多边形,且该多边形最小角对应的顶点为扩张点,计算从扩张点处欲生成的三角网格,为了防止新生成的三角网格和已经存在的三角网格重叠,要进行冲突检测.在隐式曲面三角网格化的过程中,扩张多边形是不断变化的,需要重复上述步骤,直至没有扩张多边形时结束.该算法分别应用于解析隐式曲面和变分隐式曲面的三角网格化.实验结果表明,该算法不需要重新网格化的步骤,生成的三角网格具有较高的质量,且三角网格随曲率适应性变化,因此说明了该算法的有效性.%An effective algorithm for triangulation mesh of implicit surfaces is proposed. From a seed point on the surface starting, the boundary of generated mesh is considered as expanded polygon, and the point on this polygon corresponding to minimum angle is considered as expanded point. The generated triangles from expanded point can be computed, and furthermore, in order to prevent new triangles from overlapping existing triangles, collision detection must be done. In the process of triangulation mesh, due to dynamic expanded polygon, above steps are repeated until expanded polygon is empty. This algorithm is used to triangulation mesh of analytical and variational implicit surfaces respectively. The result of experiment shows that this algorithm is capable of good meshing quality without the need for remeshing step, and meshes adapt to the local curvature of the surfaces, and thus the effectiveness of this algorithm is demonstrated.【期刊名称】《计算机工程与应用》【年(卷),期】2013(049)003【总页数】5页(P182-185,189)【关键词】隐式曲面;三角网格化;曲率;扩张多边形;冲突检测【作者】范媛媛;杨斌【作者单位】滁州学院数学系,安徽滁州239000;滁州学院计算机科学与技术系,安徽滁州239000【正文语种】中文【中图分类】TP391.41隐式曲面较易实现形状过渡、布尔操作等几何造型,具有表达复杂形体的建模优势[1],在计算机动画、点云三维建模和计算机仿真[2]等领域日益受到人们的关注和广泛的应用,但是它较难绘制[3],其主要原因在于隐式曲面不具有二维参数域。
三角网格曲面孔洞修补算法
三角网格曲面孔洞修补算法陈杰;高诚辉;何炳蔚【期刊名称】《计算机集成制造系统》【年(卷),期】2011(017)008【摘要】Aiming at the triangular mesh holes generated from incomplete point cloud data in reverse engineering,a new hole filling algorithm in space was presented.The holes boundary were extracted and pretreated,and the characteristic plane of the hole boundary was established,on which boundary was projected.The smallest angle between the projection polygon was found out to determine the corresponding boundary point as the growing point for hole filling.Hole filling moved in circle until the original hole was covered by the new triangular meshes.The mesh points of the hole boundary were chosen as the sampling points,and the new filled hole mesh points position were adjusted by least squares fitting to fill the hole precisely.Examples proved that this method had good accuracy and stability in hole filling.%针对反求工程中由于点云数据的不完整而产生的三角网格孔洞,提出了一种三角网格模型孔洞的空间修补算法。
一种基于三角网格模型的空洞填补方法
一种基于三角网格模型的空洞填补方法
高旋辉;鲍苏苏;范应方;叶建平
【期刊名称】《计算机应用与软件》
【年(卷),期】2014(031)006
【摘要】为解决三角网格模型的空洞填补问题,提出一种识别、提取、分离空洞边缘的方法流程,并且利用一种改进的三维多边形三角化算法进行空洞填补.首先,根据网格模型空洞边缘的固有性质,对网格模型的边界边进行提取;然后,对提取的边界边集合进行包括孤立点、非封闭边等异常值的消除;再利用空洞边缘封闭的性质单独分离每个空洞边缘;最后,利用一种改进的三维多边形三角化算法对每个分离出来的空洞边缘进行填补.与通常的空洞填补算法相比,所提出的方法具有更好的鲁棒性,能够处理更复杂更大的空洞边缘和三角网格模型,并且能够最大限度地保持原型,同时对空洞有较平滑的填补效果,在恢复医学三维模型以及数字三维扫描模型的完整性中有很好的应用.
【总页数】4页(P188-191)
【作者】高旋辉;鲍苏苏;范应方;叶建平
【作者单位】华南师范大学计算机学院广东广州510631;华南师范大学计算机学院广东广州510631;南方医科大学珠江医院广东广州510280;深圳旭东精工有限公司广东深圳518031
【正文语种】中文
【中图分类】TP391
【相关文献】
1.一种预处理后分类填补空洞的方法 [J], 杨依忠;徐逸琛;马茏;张强
2.一种基于时间导向的DIBR空洞填补方法 [J], 丁陈敏;吕昭宏;姚剑敏;许胜允;林博瑛;郭太良
3.一种基于三角网格模型的阶梯剖切算法 [J], 何艳娜;陈学工
4.一种基于带噪声的三角网格模型的光顺算法 [J], 赵晔;翟世梅
5.一种三角网格模型的轮廓生成方法 [J], 秦宇;曹力;吴垚;李琳
因版权原因,仅展示原文概要,查看原文内容请购买。
空间三角网格曲面的补洞方法
空间三角网格曲面的补洞方法
成欣;周明全;耿国华;李春龙
【期刊名称】《计算机应用研究》
【年(卷),期】2006(23)6
【摘要】由三维扫描仪对文物表面进行扫描得到网格数据后,先提取出破洞的边界,利用破洞边界三角形的法矢信息将破洞边界上的点投影到一个平面上,形成一个二维多边形;然后基于该二维多边形各内角及各边长度在多边形内插入新的离散点, 再将多边形内离散点三角网格化;最后用移动最小二乘近似法将破洞附近的点拟和成曲面,以此求出插入点的高度值,这样就得到了在三维空间中的网格数据.
【总页数】3页(P158-159,176)
【作者】成欣;周明全;耿国华;李春龙
【作者单位】西北大学,计算机科学系,可视化技术研究所,陕西,西安,710069;西北大学,计算机科学系,可视化技术研究所,陕西,西安,710069;西北大学,计算机科学系,可视化技术研究所,陕西,西安,710069;西北大学,计算机科学系,可视化技术研究所,陕西,西安,710069
【正文语种】中文
【中图分类】TP391
【相关文献】
1.结合网格补洞和曲面拟合的龋齿修补方法 [J], 李斐林;赵乃良
2.空间三角网格曲面的边界提取方法 [J], 张献颖;周明全;耿国华
3.代数曲面混合的切分结合S曲面补洞方法 [J], 方美娥;汪国昭
4.一种基于车身曲面重建的三角网格曲面参数化方法 [J], 李居莉;李旭;肖振;季惠
5.形状可调的B样条曲面补洞方法 [J], 叶玉辉;赵乃良
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中图分类号:P 9 .2 T 3 17
文献标识码 : A
文章编号 : 7 —11 (0 6 2 — 0 5 0 1 2 6 62 0 )3 0 7 — 4 6
维普资讯
・
现代设计技术 ・
王
乾
程筱胜
戴
宁等
基于变分隐式曲面的三角 网格孔洞修补
7 5
基于变分 隐式 曲面的三角 网格孔洞修 补
王 乾, 程筱胜 , 戴 宁, 袁天然, 刘大峰
20 1) 10 6 ( 南京 航空航 天 大学 江 苏省 数字 化设 计制造 工 程技 术研 究 中心 , 江苏 南 京
作者简介 : 乾 (92 , 河北保定人 , 王 18 一)男, 南京航空航天大学顾十研究生 . 主要研究方 向为逆向工程 、A / A 生物医学工程。 CDC M
维普资讯
7 6
2 0 年 l 月 中国制造业信息化 06 2
第3卷 5
第 2 期 3
孔 洞 的产 生原 因有很 多 , 其存 在 也非 常 普遍 , 甚至
基于变分隐式 曲面的 曲面插 植。在 T r19 uk 99年 发表的文献【 中阐述 了使用 径向基 函数进行散乱 ] 点插值的完整过程 , 并对约束点的选择 以及模型建 立等问题做出了综合论述 。本文就是利用了 T r uk 的方法来实现初始孔洞网格的构造 。
划分 问题投影 到平 面上进 行处 理 , 后根据 投 影后 然
三角网格是一种应用非常广泛 的几何模型表 达形式 , 随着现代测量技术和重构算法的发展 , 人 们可以根据实物通过三维测量和重建 获得复杂形 体的三角网格模型。但在某些情况下 , 重建 出的曲 面会产生一些不希望 出现的孔洞 , 其主要原因是 由 于测量原理或人为因素而导致 出现的噪声 、 冗余 、 数据缺失等问题。如夹具与被测 实物 的接触部位
围原有三角网格相协调 。张丽艳等通过建立空问 孔 洞 多边形 的 特征 面 , 对空 间孔 洞 多边形 的三角 把
收稿 日期 :0 6—1 20 0—1 8
基金项 目: 国家高技术研究发展计划( 6 计划 ) 83 资助项 目(0 5 A 2 20 ; 20 A 4 0 4 )江苏 省科技攻 关项 目( E 0 5 1 )南 京 市医学科技 发展计 划 B 200 4 ; 项 目( K 0 2 ) 南京市科技发展i  ̄ 项 目(0 5 42 ) Z X 40 ; t, -l 2 0 0 0 2
1 构造初始孔洞 网格
应用 隐式 曲面解 决空间散乱点 的曲面插值问
题研究 已久 , 真 正产 生 突 破 性 影 响 的是 Tuk的 但 r
不利于许多后续处理的进行。例如 , 对实物进行有 限元分析时, 孔洞 的周围会出现应力集 中, 使得计 算不收敛 , 分析不准确 ; 对模型进行快速原型制造 也需要模型具有封闭的结构 。总之 , 三角网格模型
为优化 , 而且 新 产生 的修 补三 角片 的 大小与 孔洞 周
1 1 变分 隐式 曲面求解矩阵的建 立 .
对于三维空间中散乱点 的隐式曲面插值 , 我们 规定空间中每一个点对应一个函数值 h 并且在插 , 值点处有 f , , )=O 我们可以把 h定义为空 ( Yz 。 间点到插值曲面的最近距离值。 h的符号与曲面的 法向有关 , 沿法向方 向为正 号, 背离 曲面法 向为负 号。 我们把 函数 值等 于零 即f , z =0 ( Y, ) 的点
无法避免。为此 , 国内外许多学者都对三角网格模 型的孔 洞修补 问题 进行 了深入 的研 究 , 取得 了一 并 定 的成 果[ 卜 。K.F。 en [] 采用 直 接连 接 Lo g1 等人 孔洞边界的方式填充孔洞 , 没有参考边界的其他信 息 , 以获得 满意的效果。R. f f 等人在 直 难 Pe l J ie 接填充孔洞的基础上对孔洞三角片进行细分 , 在孔 洞 内部不 断生成 新增 三 角片 , 得到 的 三角片 形状 较
无法测量 、 实物 自身的损坏 、 由于实物形体 的复杂 性导致的测量盲区等等 。同时 , 目前的逆向工程软
件, 在从散乱数据点到 三角网格 的重建过程 中, 也 可能会在数据信息量不 足的部位产生孔洞。这些
孔洞 的出现 一方 面影响 r模 型 的外观 , 一方 面也 另
网格与原始网格缝合 以完成孔洞的修补 。
称为插值约束点, 把函数值不等于零即 . , ,) 厂 Yz = ( h≠ 0的点称为附加约束点。
给定空间中一系列约束点和附加点 以及每个 点的函数值就可以定义一个隐式曲面。用隐式方
式中 x 代表 向量( Y ) N 为散乱点个数 ; , , ; G
为每个点 的坐标 向量; 为每个径 向基 的权值 ; Q
的孔洞多边形边界的夹角关系不断生成新增 的三 角片来填充孔 洞。以上算法都存在一个问题就是
孔洞网格与原始网格不能光滑连接。 基于以上问题 , 出一种基于变分隐式曲面的 提 方法实现三角网格模 型的孔 洞修补 。主要思路是
先利用孔洞边界点及其法矢信息构造一张基于变
分隐式 曲面的孑 洞曲面并将其网格化 , L 再把原边界 点投影 到孔 洞 网格上 以裁剪 孔 洞 网格 , 最后 把孔 洞
摘要 : 针对三角网格模型存在的孔洞问题提 出一种基 于变分隐式 曲面的孔洞修补算法。首先 , 利 用孔 洞边界 信 息构 造插 值孔 洞边 界 的 变分 隐 式曲 面并将 其 网格 化 , 到初 始孔 洞 网格 , 利 用边 得 再
界点裁剪初始孔洞 网格 , 最后把裁剪后的孔洞网格 与初始 网格拓扑合并 , 完成孔洞修补。算法充