三维模型的任意角度平面切割算法研究

2018-01-31 00:41宁姣董晓冯宗雪周茂霞
现代电子技术 2018年3期
关键词:三维模型

宁姣+董晓+冯宗雪+周茂霞

摘 要: 三维模型切割技术有助于对模型内部做深入了解,在生命科学、医学等领域发挥着越来越重要的作用,且该技术在不断地完善。为了能够得到更有用的内部信息,实现任意角度的切割。首先论述了任意角度平面切割算法原理,算法核心为面的点法式方程,点法式方程采用直角坐标,其缺点是确定的切割方向不够直观,因此增加了极坐标形式,给出转换原理。然后基于VTK进行算法实现,得出一次切多面的更有效的结果。实验结果表明,所给出的任意角度平面切割算法,可行有效,并有较强的灵活性。

关键词: 任意角度; 平面切割; 点法式方程; 三维模型; VTK; 多面切割

中图分类号: TN911.73?34; TP391 文献标识码: A 文章编号: 1004?373X(2018)03?0054?03

Abstract: The cutting technology of 3D model is helpful to understand the internal model deeply, plays a more important role in life science, medicine and other fields, and is improved increasingly. In order to get more useful internal information, the arbitrary?angle cutting is realized. The theory of arbitrary?angle plane cutting algorithm is discussed. The point?normal form equation of a plane as the core of the algorithm adopts the rectangular coordinates, has the intuition for the determined cutting direction, and can increase the polar coordinates form, so the transformation principle is given. The algorithm implementation based on VTK is realized. A more effective result for multi?surface cutting at one time is obtained. The experimental results show that the arbitrary?angle plane cutting algorithm is feasible and effective, and has strong flexibility.

Keywords: arbitrary angle; plane cutting; point?normal form equation; 3D model; VTK; multi?surface cutting

0 引 言

相比较二维平面来说,三维模型可以展现任意方向的实体结构及任意方向的平面投影[1],目前得到了广泛应用。但三维模型只显示表面结构信息,而表面结构将很多内部对象包裹在里面[2],使得无法看到,想要更好地了解里面的对象就要通过切割技术来实现。在VTK中,对重建物体的切割主要有两种方法[3?4]:一种是利用平面进行剪切;另一种是利用立方体进行切割。本文主要讨论的是第一种方法,即对医学三维重建的面绘制和体绘制进行平面剪切[5]。面切割是一类重要的方法,它通过平面进行剪切,可以同时用多个剪切面进行切割,使内部的信息再以平面的形式展现,让观察者可以任意角度的观察内部的图像,获取更多有用的信息。

根据切割面方向可将平面切割分为正交切割和任意角度切割[6]。任意角度切割技术的应用更加广泛,可以根据需要对切割面的方向进行设定,将内部不同层次的对象在同一个平面内显示出来,实用性更强,同时人们对这种方法的要求也越来越高。因此,任意角度平面切割技术的研究具有重要的现实意义与应用价值。

1 任意角度切割算法原理

任意角度切割是面切割的一种,关键就在于切割面的确定,可根据面的点法式确定切割面,其流程如图1所示。

首先是点的选取。点在原则上是可以随意选取的,但是在实际例子中,要根据实际的情况选取合适的点。用表示选取的一点,该点为切割平面上的一点,是在切割之前根据需要在三维模型内部选取的,该点属于切割平面。然后是法向量的选取,根据需要可以给定切割面的角度,即切割面的方向,法向量的给定可以分两种:一种是直角坐标;另一种是极坐标,而角度的确定更直观的形式是极坐标的形式,但在应用当中用到的是空间面的点法式,所以极坐标要通过公式转化为直角坐标。

假设给出的法向量的极坐标为,根据极坐标与直角坐标的转换公式(1),可得到为转换后切割面的直角坐标系中的法向量形式,切割面的角度就是由该向量确定的,由这两个条件就可以根据空间平面点法式方程(2)确定切割面。

切割面确定后,下一步就是切割面的映射,可通俗理解为求切割面和三维模型的交集,将交集部分添加到三维模型中,使切割面以平面的形式在三维模型中显示。

切割面确定后,就将三维模型用这一平面分成了两部分,而当法向量确定后,所显示的部分只是切割面所切出来的两个切面中的一个,该部分的切面的外法向量和切割面的法向量是一致的,而另一部分则被切掉了,如图2所示。

在图2中,左边为一个三维的立体图,在该立体图中确定一个点及法向量,黑点表示确定的点,箭头表示法向量,则切割完成后的效果图就是右边实线部分所显示的立体图。同样,还可以在此基础上设定其他的点和法向量,这里要注意的是,在设置的时候要保证切割面与剩下的立方体有交集才可以,也就是如果一次切割后再进行切割时,以第一次切割完成后的部分作为第二次切割的模型,以此类推,可以进行多次切割,如果没有交集,那将是没有意义的切割,如图3所示。endprint

2 算法在VTK中的实现

算法是在基于Windows平台上配置好视觉化工具函数库(VTK)[7?9]的VS2010软件中实现的,任意角度切割所采用的模型也是在VTK函数库下用体绘制和面绘制两种方法重建出来的。

任意角度切割就是在三维模型中找到一个点,给定切割面的法向量,相应的就可以得到切割面,在程序中用SetOrigin和SetNormal两个函数完成该项工作。SetOrigin定义为三维空间中的一点,同时也是切割平面上的一点,然后通過SetNormal给定切割平面的法向量,得到相应的切割平面。对三维模型进行切割后,用函数AddClippingPlane()将切割平面加入到重建模型映射中,代码为:volumeMapper?>AddClippingPlane(plane);plane就是相应的切割面。这样就可以看到该平面内的信息,也就完成了一次切割。

当然切割一次会有两部分,而显示的只有一部分,是切面外法向量和相同的部分,而另一个部分只需要将法向量取反就可以得到了。如果有需要的话,切割面可以增加,可以一次进行多平面切割。

3 实验验证

实验是在处理器为IntelCoreTM i7?4790 CPU@3.60 GHz,内存为8.00 GB的WIN7系统下配置好VTK工具包的VS2010软件中实现的。

3.1 实验数据

三维模型的数据可以通过VTK重建得到,也可以选取已有的模型直接进行切割。这里给出了对已有模型切割和对通过VTK重建的三维模型进行切割的实验。

三维重建以医学图像为例[10]。重建过程是先将一组二维CT图像读入,部分原图如图4所示,这只是其中的4张,该组图像是一组CT切片,规格是512×512,共230张。读取该图片序列,设置相应的参数,建立等值面,形成三角带完成皮肤的面绘制,然后通过设置颜色和透明度,用光线投影技术完成体绘制[11],从而对该组图片序列图完成重建,以立体的形式呈现,构造出进行切割的模型如图5a)所示。已有的模型以一个简单的空心圆柱体为例,如图5b)所示。

3.2 实验结果及分析

在三维模型中设置一点,再设置法向量,对三维模型进行任意角度切割。切割点确定之后,可以根据切割面的不同进行多次切割。实验给出了一个平面、两个平面及三个平面切割的效果图,结果如图6,图7所示。

图6中的两组图都是用一个切割面进行切割的。图6a)中的三幅图是对已有模型圆柱体进行不同角度的切割,该角度是任意的,所以可以根据需要进行切割面的设定。图6b)是对医学图像进行重建,将三维重建模型进行切割,切割面的选取同样可以根据需要去设定,切割后显示出需要的信息。

图7中的两组图是用多个面进行切割的。其中,图7a)中的两幅图是用两个面同时进行切割的,图7b)是用三个面同时进行切割的。这样完成一次切割就可以将不同切割面上的信息同时呈现,效率更高。

4 结 语

在三维模型任意角度平面切割算法原理分析的基础上,基于VTK平台,实现了将已有模型和重建三维模型进行任意角度平面切割,该方法可以根据实际情况取点,设置切割面的方向,而且可以随时对点和方向进行修改,还可以同时进行多面切割,一次呈现多个面上的信息,灵活性特别大。通过切割平面摆脱外部结构的遮挡,看到内部的信息,更全方位地了解三维模型的内外构造。方法应用性较强,在多方面发挥着重要的作用。

参考文献

[1] 李婧,李昌华.基于VTK的体绘制系统实现[J].现代电子技术,2008,31(12):88?90.

LI Jing, LI Changhua. Volume rendering based on VTK system [J]. Modern electronics technique, 2008, 31(12): 88?90.

[2] 郭圣文.用任意平面对三维物体实现剪切的方法[J].微计算机信息,2007,23(19):296?297.

GUO Shengwen. With an arbitrary plane of 3D objects to achieve shear method [J]. Microcomputer information, 2007, 23(19): 296?297.

[3] 张娟,熊杰,程昊,等.基于VTK的三维数据可视化软件开发[J].成都大学学报(自然科学版),2014,33(3):254?256.

ZHANG Juan, XIONG Jie, CHENG Hao, et al. Based on VTK 3D data visualization software development [J]. Journal of Chengdu University (natural science edition), 2014,33(3): 254?256.

[4] ZHENG Pan, BELATON Behari. Craniofacial data registration and visualization survey [C]// Proceedings of Regional Computer Science Postgraduate Conference. [S.l.]: IEEE, 2006: 761?765.

[5] MARCELO G P. Three?dimensional computed tomography landmark measurement in craniofacial surgical planning: experimental validation in vitro [J]. Journal of oral and maxillofacial surgery, 1999, 57(6): 690?694.endprint

[6] 孙少平,杨开泰,李斌,等.三维交互式切割技术在医学图像处理中的应用[J].中国医疗器械杂志,2013,37(5):313?314.

SUN Shaoping, YANG Kaitai, LI Bin, et al. 3D interactive cutting technology application in medical image processing [J]. Chinese journal of medical apparatus and instruments, 2013, 37(5): 313?314.

[7] 苗蕤.基于VTK的三维重建实现平面剪切[J].电子技术与软件工程,2015(11):103?104.

MIAO Rui. 3D reconstruction based on VTK implementation plane shear [J]. Electronic technology and software engineering, 2015(11): 103?104.

[8] WILLIAM J S, KENNETH M M, LISA S A, et al. The VTK user′s guide [R]. New York: Kitware Inc., 1998.

[9] TAO Zhijiang, HUANG Hua, ZENG Jun. Three?dimensional reconstruction of medical images based on VTK [J]. Journal of clinical rehabilitative tissue engineering research, 2011, 7(23): 5604?5606.

[10] 贾艳丽,武力.基于VTK人体肺部的三维重建[J].计算机与数字工程,2012(7):105?107.

JIA Yanli, WU Li. 3D reconstruction based on VTK human lung [J]. Computer and digital engineering, 2012(7): 105?107.

[11] 洪锋,梅炯,李明禄.医学图像三维重建技术综述[J].中国图象图形学报,2003,8(z1):784?791.

HONG Feng, MEI Jiong, LI Minglu. Medical image 3D reconstruction technology review [J]. Chinese journal of image and graphics, 2003, 8(S1): 784?791.endprint

猜你喜欢
三维模型
数字化人体图像和三维模型在解剖教学中的应用
矿山虚拟环境三维模型系统优化方法研究
汽车虚拟驾驶培训系统的设计开发
虚拟仿真技术在家畜解剖教学中的应用
基于现代信息技术的矿产资源监管体系建设
基于WebGL的三维物理模型设计与开发
基于生态足迹的区域可持续发展研究
三维激光扫描在核电维修中的应用
基于SolidWorks的零件建模参数化设计应用简析
基于DIMINE软件地质模型建立