利用VTK与ITK的集成实现医学图像可视化利用VTK与ITK的集成实现医学图像可视化郭圣文(华南理工大学生物学院生物医学工程系,广州510640)E—mail:Guo—shengwen@sohu.COB摘要在开发医学三维可视化系统时,利用ITK的图像读取与处理功能及VTK在可视化方面的突出能力,将二者有机地集成起来是非常重要与理想的技术路线.讨论了在VisualC++开发环境中,VTK与ITK实现集成的方法与步骤.实验结果验证了该方法在医学图像三维可视化及交互方面具有良好的性能.关键词可视化VTKITK集成三维重建文章编号1002—8331(2006)30—0183—02文献标识码A中图分类号TP391.4PlatformofMedicalImageVisualizationbyIntegratingITKintoVTKGUOSheng—wen(DepartmentofBiomedical,SouthChinaUniversityofTechnology,Guangzhou510640)Abstract:It'SavitalandidealmethodtointegrateITKintoVTKinordertoaccessmedicalima~esbyITKandvisualizeimagesbyVTKintheprocessofdesigningmedical3Dvisualizationsystem.It'SdiscussedtointegrateITKintoVTKinVisualC++.TheExperimentsshowthattheprovidedmethodcanachieveprominentperformanceonvisualizationandUserjnteracti0n.Keywords:visualization,VTK,ITK,integrating,3Dreconstructing1引言VTK(TheVisualizationToolkit)是美国Kitware公司的一个开放源码的自由软件(openSOUrce).可以应用于图像处理,计算机图形学和科学计算可视化I1】它在科学计算可视化尤其是三维重建功能如面绘制和体绘制方面具有强大的功能.使其在可视化.尤其是在医学图像领域得到广泛应用.VTK完全采用面向对象的设计思想来设计与开发.提供了超过300个C++类,支持Window,Unix与Linux等多种平台,支持C,C++.Java.Tc1/Tk以及Python等编程语言.目前已发布的稳定版本是4.2ITK(InsightSegmentationandRegistrationToolKit)提供了一个医学图像分割与配准的算法平台.它源于美国的可视人体项目(TheVisualHumanProject)[31.同样地,ITK也支持跨平台开发,以开放源代码的形式发布,目前其稳定版本为1.6.提供了几乎所有主流的医学图像分割与配准算法由于ITK在医学图像分割与配准方面具有非常强大的功能.在进行分割与配准算法研究及开发医学图像处理与分析系统时.我们常常需要应用这一重要的工具但ITK并不具备可视化方面的功能.因此,往往在应用ITK进行图像处理后.再利用VTK进行三维可视化.观察结果及进行交互显示ITK与VTK存设计风格上具有较大的差异.VTK使用传统的面向对象的设计与开发方法.而ITK使用了1998年后颁布的ANSIC++标准巾的新特性.如模板(Template).基于范型编程(GenericProgramming)等.二者设计与编程风格上的不一致.给编程带来了一定难度㈧2VTK与ITK的集成2.1医学图像处理及可视化系统的结构医学图像处理及可视化系统的基本结构如图1所示.其中ITK主要用于图像处理.图形用户界面(GUI)包括MFC.QT.wxWin及FLTK.它们可以用于显示图像及实现用户交互.功能比较简单.OpenGL及VTK具备强大的可视化能力.如光线,场景,材质.支持三维表面绘制及体绘制.控制灵活,可实现逼真的三维显示效果图1医学图像处理及可视化系统的结构2.2VTK与ITK实现集成的方法2-2.1VTK与ITK集成的流程图2说明了VTK与ITK实现集成的基本流程.首先由ITK读取图像数据.然后对图像进行处理(也可以不进行任何预处理).再通过ImageFilter将数据转换为VTK支持的数据类型.最后.应用VTK的ImageVieW对二维图像进行显示或用Render显示三维数据2.2.2实现VTK与ITK集成的步骤在visualC++环境中.vTK与ITK实现集成主要分以下基金项目:广东省自然科学基金资助项目(编号:05300233);华南理工大学自然科学青年基金资助项目(编号:321E5040950)作者简介:郭圣文,博士,讲师,研究方向:图像处理,分析与可视化.计算机工程与应用2006.30183图2VTK与ITK实现集成流程图几步:(1)建立CMakelists.txt文件CMakelists.txt的主要内容包括:①定义项目名称;②设置MFC标记,导入Win32库;③加入.cpp及-r(:文件;④搜索ITK包.添加头文件路径;⑤搜索VTK包,添加头文件路径;⑥定义可执行文件命名;⑦加入VTK及ITK包的相关库.通常.一个典型的CMsLkeLists.txt文件内容如下#CMakeLists.txtPROJECT(Visual...