点云模型交互式边界曲线分割算法研究
2017-11-02肖培
肖培
摘要:点云模型区域分割是其数字处理的基础工作。在分析用户交互式边界顶点选取方法基础上,提出一种基于自动生成边界曲线的分割算法。根据点法式方程求解边界点的剖切平面,据此将点云模型分为两部分。实验表明,与适当的用户界面配合,算法可有效实现点云模型的特征区域交互式分割操作,为点云模型参数化及模型编辑等提供支持。
关键词:点云;交互式边界;模型编辑;交互式模型分割
DOIDOI:10.11907/rjdk.172243
中图分类号:TP312文献标识码:A文章编号:16727800(2017)010006103
0引言
点云模型具有表示三维细节能力强、存储简单等特点,成为CAD/CG领域常用的三维物体表示模型。如何有效对点云模型进行边界选取及区域分割,是点云模型数字几何处理的基础性工作[1]。
为了给用户提供更加自由的模型编辑手段,使用户能将更多的个性化建模意图渗透到模型编辑与相关处理中,本文在交互式方法基础上,选取相应的边界点,依据这些点计算出一个剖切平面,将点云模型分成两部分,实现了点云模型的交互式分割、局部参数化等操作[23]。
1分割算法
对点云模型进行分割,要根据交互式边界曲线的点计算其剖切平面。平面计算方法一般有点法式、截距式、平面一般方程等,而现有的条件是边界上各点的坐标,通过计算边界点的幂中心m,将边界点中的每个点平移至m,然后乘以其转置(pi-m)T,将每项乘积求和,最后除以边界点个数,从而得到点云边界点的协方差矩阵A。通过雅可比方法求解对称矩阵的全部特征值与相应的特征向量。特征向量中,绝对值最小的特征值对应的特征向量应为此剖切平面的法向[4]。假定此剖切平面通过点m,如图1所示,则可通过点法式得到此剖切平面方程。将点云模型中的非边界点代入方程,依据此平面得出正负值,将点云模型分为两个部分。
2模型分割结果
图3为根据几个模型选取边界进行计算并分割的结果。实验表明,此方法可在交互选取的点云边界上很好地对点云模型进行分割,为点云的局部区域参数化提供支持。
实验采用GLUT库作为实验主程序的窗口系统,由其建立模型显示窗口与鼠标及键盘操作之间的联系,通过操作键盘和点击鼠标实现模型边界点的选取或删除。点云模型的显示与旋转等三维变换操作通过OpenGL图形库实现[7]。通过鼠标选取点云模型中的顶点作为边界顶点,通过OpenGL提供的选择、拾取等操作实现[8]。
图3是本文算法在交互式生成模型边界曲线的基础上进行点云模型分割的部分结果。其中,图3(a)是对867个采样点构成的苹果模型进行剖分操作得到的结果,通过计算曲线的剖切平面将苹果模型剖切为上下两部分;图3(b)是运用本文算法生成的人头模型截口曲线;图3(c)是对简化后的马点云模型从腰部进行剖分的情况,相关局部模型被作者用于马模型的球面参数化;图3(d)是截取了头部的老虎模型,可用于点云模型的局部编辑操作。
3结语
本文提出一种支持交互式操作的点云模型边界曲线分割算法。根据交互式边界曲线的点计算其剖切平面,将点云模型中的非边界点代入平面方程,依据此平面得出的正负值将点云模型分为两个部分,与OpenGL及窗口系统配合实现该算法,并成功应用于点云模型的参数化、模型编辑等。
参考文献参考文献:
[1]欧新良,匡小兰,倪问尹.三维散乱点云分割技术综述[J].湖南工业大学学报,2010(5):4549.
[2]廖中平,刘科,向雨,等.多阈值提取平面点云边界点的方法[J].计算机应用,2016(7):19331937.
[3]孙金虎,周来水,安鲁陵.应用最小生成树实现点云分割[J].中国图象图形学报,2012(7):858865.
[4]张强,李朝奎,李俊晓,等.一种改进的基于法矢方向调整的平面点云分割方法[J].地理与地理信息科学,2015(1):4548.
[5]葛邵飞,谢晓尧,景凤宣,等.点云数据模型特征点提取算法研究与实现[J].贵州师范大学学报,2013(5):101106.
[6]徐士良,马尔妮.常用算法程序集(C/C++描述)[M].第5版.北京:清华大学出版社,2013.
[7]庞明勇,卢章平.鼠标跟踪球技术的简单类实现[J].计算机工程,2004,30(17):182183.
[8]刘慧杰,靳海亮.基于VC++的OpenGL三维图形开发設计[J].计算机与数字工程,2009(7):122124.
责任编辑(责任编辑:杜能钢)endprint