三维可视化技术在医学领域中的应用

2009-08-13 06:18王舒宜陈汉勇廖琪梅卢虹冰
现代电子技术 2009年10期

王舒宜 陈汉勇 李 刚 廖琪梅 卢虹冰

摘 要:在医学软件的开发过程中,实现三维重建技术的优劣是系统设计的难点和重点。在探讨面绘制与体绘制技术的基础上,使用OpenGL及VTK工具包完成可视化具体操作,并对其结果进行简要分析。利用患者髋关节CT数据,实施了基于OpenGL的Marching Cube算法、三维纹理映射算法,以及基于VTK的Marching Cube、Ray Casting算法,并对实现过程及实现效果进行了对比分析。基于OpenGL与基于VTK的面绘制技术及体绘制技术均能较好呈现患者髋关节的三维解剖结构信息。其中,面绘制可有效地绘制出三维体的表面,但缺乏内部信息的表达;体绘制真实感较好,但渲染速度较慢,不适合用于实时系统的表达。VTK可视化方法实现简单,适用于快速显示数据空间信息,但其三维交互功能不足;OpenGL属于底层API,可灵活完成各项交互操作及渲染任务,但其编码较为复杂。

关键词:面绘制;体绘制;VTK;OpenGL;DICOM

中图分类号:TP319文献标识码:B

文章编号:1004-373X(2009)10-091-03

Application of Three-dimensional Visualization Technology in Medicine

WANG Shuyi,CHEN Hanyong,LI Gang,LIAO Qimei,LU Hongbing

(Fourth Military Medical University,Xi′an,710032,China)

Abstract:AIM three-dimensional reconstruction is the difficulties and focus in development of the medical application software.In this paper,OpenGL and Visualization Tool Kit are used to achieve the specific visualization based on the technology of surface rendering and volume rendering.To contrast the result,some CT data of developmental dysplasia of the Hip patients are reconstructed by using Marching Cube algorithm based on OpenGL and Marching Cube,Ray Casting algorithm which are based on VTK.Marching cube algorithm and Ray casting algorithm based on OpenGL and VTK can both better display the three-dimensional anatomical structure information of patient.Surface can provide effectively render surface of a three-dimensional,but the lack expression of internal information.Instead,volume rendering can greatly improve quality of image,but does not apply to the expression of real-time system.VTK visualization methods can implement simply and rapid display 3D data,it is lack of three-dimensional interactive features.Contrarily,OpenGL which is the underlying API can accomplish flexible interaction,but its code is more complex.

Keywords:surface rendering;volume rendering;VTK;OpenGL;DICOM

0 引言

近年来,随着计算机断层(CT)、磁共振(MRI)、B超等设备的研制成功,使得传统的医学诊断方式发生了革命性变化。使用计算机对医学影像设备采集到的数据进行处理(医学影像处理与分析),为临床医学的诊疗和医学科学的研究,提供了清晰的人体结构图像和详尽的病理信息,使得疾病的检查与诊断发生了革命性的变革。目前,我国已从国外进口了大批医疗设备,并在临床上广泛应用,但由于国内缺乏配套的开发队伍,一般使用的是国外公司随机器附带的软件。同时,我国已经初步具备了医疗器械的生产能力,但高质量的配套软件相当缺乏,抓住这一契机,在国内开发医学影像软件十分必要。

1 方法

1.1 软件开发

医学软件的开发主要分为DICOM(Digital Imaging and Communication of Medicine)数据的读取、图像分割、数据可视化及外科手术模拟等几部分[1],如图1所示。其中,数据可视化是一个较为关键的环节,它可为医生提供病变组织与邻近结构的空间解剖结构,辅助医生直观、迅速、准确地诊断病变。这里主要介绍目前常用的可视化分析算法,并重点结合OpenGL技术及VTK(Visualization Tool Kit)软件包实现面绘制(Surface Rendering)及体绘制(Volume Rendering)方法,最后对两种方法进行简单比较。

1.2 面绘制与体绘制技术

三维可视化算法大致可分为面绘制与体绘制技术。面绘制技术[2-4]基于三维空间场的等值面提取,可细分为Marching Cube,Marching Tetrahedral,Dividing Cubes等算法。其中,Marching Cubes(MC)算法是体素单元内等值面抽取技术的代表,其基本思想是逐个处理数据场中的体素,分类出与等值面相交的体素,采用插值计算出等值面与体素棱边的交点。根据体素中每一顶点与等值面的相对位置,将等值面与立方体边的交点按一定方式连接生成等值面,作为等值面在该立方体内的一个逼近表示。在计算出体数据场内所有等值面的有关参数后用常用的图形软件包或硬件提供的面绘制功能绘制出等值面,如图2所示。

然而,对于复杂物体表面,如果仅用几何形状表示各器官的表面,不可能完整显示其内部信息。体绘制[5-7]的目的就在于提供一种基于体素的绘制技术,能显示出对象体的丰富的内部细节。常用的体绘制算法包括Ray Casting,Ray Tracying,Shear Warp等。其中,Ray Casting为其典型代表,具体思想为从图像平面的每个象素向数据场投射光线,在光线上采样或沿线段积分计算光亮度和不透明度,按采样顺序进行图像合成。得到的结果图像如图3所示。

在可视化算法的具体实现过程中,对于底层操作用户可以采用基于OpenGL[3,8]渲染的方法进行重建。OpenGL是由SGI公司开发的低层三维图形API(实际上是一种图形与硬件接口),包含120多个图形函数,用户可以用这些函数来建立三维模型和进行三维实时交互,目前已经成为高性能图形和交互式视景处理的工业标准。优点是操作灵活,可完全依照需求,用于完成各项操作功能,但其缺点是没有基本可视化模块,具体算法需要用户编写实现,对于初学用户难度较大,实现周期较长。

VTK[4]是一个用于可视化应用程序构造与运行的支撑环境,具有强大的三维图形功能,主要进行3D计算机图形、图像处理。它是在OpenGL的基础上采用面向对象的设计方法发展起来的,将在可视化开发过程中会经常遇到的细节屏蔽起来,并将一些常用的算法封装起来。例如:VTK将Marching Cubes算法封装起来,以类的形式给予支持。这样用户在对三维规则点阵数据进行表面重建时就不必再重复编写Marching Cubes算法的代码,而直接使用VTK中已经提供的VTKMarchingCubes类即可,给从事可视化应用的用户提供直接的技术支持,但主要缺点是,使用VTK自身提供算法简单易行,但若增加用户特定功能较为困难。

VTK具体的程序流程如图4所示,主要包含可视化(Visualization Pipeline)及图形(Graphics Pipeline)两个主要管道。其中,可视化管道负责将信元转换为图形数据;图形数据管道则将图形数据转化为输出图像。

2 结果

这里的DICOM实验数据取自第四军医大学附属西京医院小儿骨科患者髋关节数据。使用PQ6000型多层螺旋CT对病人扫描获取样本数据,扫描范围从髂前下脊到小转子。具体参数为:层数71,扫描层厚3 mm,重建层厚2 mm,扫描参数120 kV,70~120 mA(由患者的体形大小决定)。分别使用实验室自己编写的直接基于OpenGL的Marching Cubes算法、三维纹理映射算法,以及采用VTK自身提供的Marching Cubes算法、Ray casting算法,其结果对比如图5、图6所示。

3 讨论

在此主要介绍了体绘制及面绘制技术在医学领域中的应用,重点阐述了其基于 OpenGL及VTK的实现方法,并对患者数据使用上述方法进行了简单的对比分析。对比面绘制与体绘制[9-11]技术可知,面绘制可有效地绘制出三维体的表面,但缺乏内部信息的表达。同时其可视化效果较差,如提高渲染质量,需增加三角形面片或进行平滑处理,如图7所示;体绘制真实感较好,但渲染速度较慢,不适用于实时系统的表达。

对比VTK及OpenGL[10,12]两种显示技术可知,VTK可视化方法简单,适用于快速显示数据空间信息,但其三维交互功能不足,如要增加特定功能实现极为困难;OpenGL属于底层API,可灵活完成各项交互操作及渲染任务,功能强大,但其编码较为复杂。

对于今后三维平台的开发,可以采用OpenGL开发自己的库函数,以供后期直接使用;或修改VTK,配合ITK(Insight Tool kit)进行分割配准,为自己所用。或直接使用MITK(Medical Imaging Tool Kit),同时完成可视化及配准操作。

4 结 语

经上述分析比较,VTK可视化方法实现简单,适用于快速显示数据空间信息,但其三维交互功能不足。OpenGL属于底层API,可灵活完成各项交互操作及渲染任务,但其编码较为复杂。

参考文献

[1]Li B,Lu H,Cai W,et al.Computer Aided Diagnosis and Treatment Planning for Developmental Dysplasia of the Hip.SPIE Medical Image,2005,57:44-89.

[2]李改.体可视化MT算法的改进.吉首大学学报:自然科学版,2007,28(1):55-58.

[3]刘磊,冯前进,王文辉,等.基于GPU 的医学图像快速面绘制.计算机工程与应用,2007,43(32):189-191.

[4]张翔,肖小玲,张爱华.基于VTK库的人脑三维可视化面绘制.长江大学学报:自然科学版,2006,3(1):75-76.

[5]黄展鹏,周苏娟,赵洁.直接体绘制加速算法综述.计算机与数字工程,2008,36(3):28-30.

[6]陶玲,钱志余,陈春晓.基于光线投影的医学影像体绘制加速技术.光电工程,2008,35(1):89-93.

[7]宋卫卫,李冠华,欧宗瑛.医学体数据三维可视化技术.计算机工程与应用,2006(18):22-26.

[8]周建龙,王知衍,肖春.基于纹理映射和GPU的焦点区域体绘制.计算机辅助设计与图形学学报,2008,20(1):32-37.

[9]伍新中,张树生,洪歧,等.大规模医学序列图像体视化研究与实现.北京生物医学工程,2008,27(1):11-14.

[10]李晶,阮兴云,徐志荣,等.三维体数据的可视化探讨.医疗卫生装备,2008,29(6):75-76.

[11]徐夏刚,张定华,洪歧.体视化方法综述.计算机应用研究,2006(1):12-15.

[12]曹立基,梁家斌,赵俊.用于CT仿真的可视化空腔结构快速薄壁体绘制方法.中国组织工程研究与临床康复,2007,35(11):7 047-7 049.