基于孔洞区域特征分割的复杂孔洞修复方法

2020-08-04 09:50王继伟张应中罗晓芳
数字技术与应用 2020年5期

王继伟 张应中 罗晓芳

摘要:针对三角网格模型中曲率变化剧烈,跨多个特征面的复杂孔洞,提出一种基于脊线拟合的孔洞分割方法。首先检测孔洞边界上的曲率突变点,识别孔洞周边区域的特征线,再将特征线进行配对,进而拟合出孔洞区域的分割线,将分割线离散化为由顶点链组成的多段线,与分段的孔洞边界连接成简单孔洞,最后采用简单孔洞修补算法完成修补。实验结果表明,该方法对曲率变化剧烈的孔洞修补效果良好,能较好的保持原模型的细节特征。

关键词:复杂孔洞;孔洞区域特征;复杂孔洞分割;孔洞修复

中图分类号:TP391 文献标识码:A 文章编号:1007-9416(2020)05-0054-01

在逆向工程中,三角网格模型的完整性和准确性对后续逆向设计有着至关重要的作用。但由于采集技术手段的局限性等原因易造成孔洞缺陷的产生。针对孔洞修补问题,国内外学者进行了大量的研究。Gen Li受该方法启发,提出基于边扩展的方法分割复杂孔洞。但仍然通过检测投影多边形来识别复杂孔洞,对于某些复杂孔洞难以恢复原边界的特征。

1孔洞识别与提取

2复杂孔洞分割

2.1复杂孔洞标识

通常将曲率变化平缓的孔洞定义为简单孔洞,将曲率变化剧烈、跨多个不同特征面的孔洞定义为复杂孔洞。复杂孔洞边界上一定存在曲率变化较大的顶点,本文通过查找这些曲率突变顶点为起点,向网格区域延伸,获得足够采样点来确定是否存在特征线,若存在,该点定义为特征顶点。具体标识方法如下:

(1)曲率突变顶点查找。如果孔洞边界上一个顶点邻接的三角面的曲率变化较大,该点称为曲率突变顶点。本文采用顶点邻接面的两面角进行度量。二面角越小,则表示两个相邻的三角形越平滑;反之,就会出现棱线迹象。首先遍历计算孔洞边界顶点邻接两个三角面之间的两面角a,如果a大于设置的阈值(例如30°),则该顶点为曲率突变点。

(2)特征线查找。以曲率突变顶点为起点追踪查找,按两面角最大方向查找,如图1所示。查找算法步骤如下:

Stepl.按照上述方法查找曲率突变顶点。如图l中顶点v,相邻的面f1和f2的两面角为a大于阈值,则选为曲率突变顶点。

Step2.对所有与v1相邻面(已处理标记过的除外)一一配对计算两面角:如果最大的两面角大于设置的阈值,则将最大构成两面角的边选为追踪延伸边,该邊的另一个顶点则为下一个延伸顶点,如图l中的v2,转step3;如果所有计算的最大的两面角都小于设置的阈值,转step4。

Step3.如果查找的特征顶点个数小于N(预先设置的顶点数阈值,本实验设置为8),转step2;否则转step4。

Step4.如果查找的特征顶点个数大于或等于N,表示能够查找到由这一系列顶点连成一条特征折线,查找获得的顶点形成为以孑L洞边界顶点v,为起点,有N个采样点v1,v2,…,vN的特征折线,结束查找。

2.2复杂孔洞区域特征分割

通常复杂孔洞会跨多个特征面,将一条完整的边界特征线分割成2段或者多段。被分割的特征线会在孔洞上留下端点,通过查找原本在该条特征线上的两个顶点并进行匹配称为特征线匹配。

3实现与修复实例

实验针对不同模型验证了本文提出的孔洞修补算法。图2(a)为带有较大面积孔洞的齿轮模型,孔洞区域具有明显的脊线几何特征,图2(b)为采用方法进行模型修补的实验效果,图2(c)为本文方法的修补效果。

图3(a)为端盖模型,孔洞区域曲率变化较大,跨多个越不同特征面。图3(b)为采用方法进行模型修补的实验效果,图3(c)为本文方法的实验效果,从修补结果可以看出,本文方法的修补效果较好的还原了端盖模型的局部细节特征。

4结语

针对三角网格模型中曲率变化较大,跨多个特征区域面的复杂孔洞,本文提出一种基于孔洞区域特征分割的修复方法,首先进行单连通孔洞与非流形孔洞的识别,然后找到孔洞边界上的曲率突变顶点与特征点,拟合特征线并进行配对,进而拟合出分割线,完成复杂孔洞的分割,最后现有算法对简单孔洞进行修补。实验结果表明,该方法对曲率变化剧烈的孔洞修补效果良好,能较好的保持原模型的细节特征。