1、信息技术与信息化图像处理2008年第5期115利用VTK实现D I COM医学图像三维重建3D Reconstruction ofD I COM Medical I magesBased on VTK王树秀3 雷 声3 3 常发亮3WANG Shu-xiuLEI ShengCHANG Fa-liang摘 要 利用医学可视化技术可以将二维断层序列图像重建为三维虚拟实体,基于这个模型可以精确地获取病变区的大小、位置和形状,极大地提高了诊断的直观性与交互性。VTK是目前国际上通用的科学计算可视化工具包,D I COM文件为医学图像的专用传输和存储格式。在Visual C+6.0平台下,本文借助VTK
2、类库,采用体绘制方法实现了D ICOM医学序列图像的三维重建,并给出了程序运行结果。关键词 三维重建 D I COMVTK 体绘制3 山东大学控制科学与工程学院 济南 2500623 3 浙江大学 生物医学工程与仪器科学学院 杭州 310027基金项目:国家自然科学基金(No.60775023);山东省自然科学基金(No.Z2005G03)。D I COM(digital image and communication on medicine)文件格式为目前国际通用的医学影像专用的传输和存储格式,在PACS系统中得到了广泛的应用。D ICOM图像三维重建是指将二维D ICOM序列医学图像通过特
3、定的重建算法重建为三维虚拟实体,可以较为准确的获得病变区的大小、位置、形状等三维信息,为进一步的病情诊断、虚拟手术等提供了更为丰富直观的信息和交互手段,极大地方便了医生的诊断治疗。医学图像三维重建方法可以分为面绘制(Surface Rendering)和体绘制(Volume Rendering)两大类。面绘制算法中具有代表性的是MC(Marching Cubes)算法,它通过对一系列的二维图像进行边界识别等分割原理,将感兴趣的部分以等值面的方式抽取出来,从而为用户提供较具真实感的三维图像。这种方法的优点是重建速度较快,内存资源需求较小,缺点是易丢失纹理细节。体绘制算法主要包括光线投影算法(Ra
4、y Casting),脚印法(Splat2ting),剪切变形法(Shear-Warp),其中Ray Casting算法是体绘制中的经典算法,它是从投影平面的每一个像素点发射出一条光线,穿过三维体数据场,并计算光的传输方程,得到最后的图像1。这种方法的缺点是内存需求大,绘制速度较慢,但是它保存了整体细节,绘制效果较好,可以很方便地实现一些插值算法。本文采用Ray Casting算法作为三维重建方法,同时由于传递函数的设置对体绘制结果有很大影响,详细介绍了传递函数的设置,并给出了关键代码。1 基于VTK的DICOM图像三维重建1.1VTK简介VTK(The Visualization Toolk
5、it)是美国Kitware公司推出的一个开放源码的自由软件系统,可以应用于图像处理、计算机图形学和科学计算可视化,最新版本为5.0.4。VTK完全采用面向对象的设计思想来设计与开发,支持W indows,Unix与Linux等多种平台,支持C,C+,Java,Tcl/Tk以及Python等编程语言4。VTK将众多常用的图形操作、图像处理算法封装成不同的类,非常易于理解和调用。与此同时VTK具有很好的流(streaming)和高速缓存(catching)能力,这些都使得VTK成为医学图像可视化开发的一个较好的选择。1.2VTK读取D ICOM医学图像现有的VTK封装了可以直接读取D ICOM图像
6、的C+类vtkD ICOM I mageReader,极大地简化了使用VTK工具包读取D I2COM医学图像的过程。以下为读取D ICOM序列图像的代码:vtkD ICOM I mageReader3reader=vtkD I COM I mageReader:New();reader-SetDataByteOrderToLittleEndian();reader-SetDirectoryName(filedirectory);/filedirectory为存放图像的路径reader-Update();1.3 三维重建的实现本文采用光线跟踪算法(Ray Casting)作为体绘制的基本算法。基
7、于VTK类库的体绘制管道模型如图1所示。vtkI mageShiftScale和vtkI mageCast主要用于数据类型的转换。在图像处理管道中,vtkI mageCast主要是转换输入数据类型以匹配输出数据类型,由函数Set OutputScalarType来实现。在vtkI m2ageShiftScale,输入图像被移动和缩放,主要由以下两个函数实现:virtual void SetShift(double)和virtual void SetScale(double),转换后的像素值=(原像素值+平移值)伸缩值。与此同时,这个类也可以通过函数Set OutputScalarType转换数
8、据类型。本文采用vtkI mageShiftScale进行数据转换。在体绘制中传递函数将体数据转换为光学参数,因此体绘制的效果直接由传递函数决定。传递函数主要有三类:不透明度传递函数、颜色传递函数和梯度传递函数。不透明度传递函数主要是确定各体素的不透明度,由vtkPieceW iseFunction来设置,vtk2PieceW iseFunction定义了分段函数映射,由AddPoint()和AddSeg2ment()实现数值点的添加。关于这两个函数的具体参数如下:1994-2010 China Academic Journal Electronic Publishing House.All
9、rights reserved.http:/图像处理信息技术与信息化1162008年第5期图1 体绘制管道模型intAddPoint(double x,double y)x代表体素的灰度值,y代表该体素点的透明度,其范围为0,1,0代表完全透明,1代表完全不透明。void AddSegment(double x1,double y1,double x2,double y2)这个函数的功能是添加一条直线段,起点坐标(x1,y1),终点坐标(x2,y2),其含义与上述(x,y)类似。针对本文所使用的D I COM医学图像,不透明度传递函数设置如下:vtkPiecewiseFunction3opac
10、ityTransferFunction=vtkPiece2wiseFunction:New();opacityTransferFunction-AddPoint(70.0,0.0);opacityTransferFunction-AddPoint(599.0,0);opacityTransferFunction-AddPoint(600.0,0);opacityTransferFunction-AddPoint(1195.0,0);opacityTransferFunction-AddPoint(1200,.2);opacityTransferFunction-AddPoint(1300,.3
11、);opacityTransferFunction-AddPoint(2000,.3);opacityTransferFunction-AddPoint(4095.0,1.0);颜色传递函数主要是确定体素的颜色值或灰度值,由类vtk2ColorTransferFunction实现。根据AddRGBPoint()设置数值点的颜色值。函数具体参数如下:intAddRGBPoint(double x,double r,double g,double b)x代表体素点的灰度值,含义与上述相同,r代表红色分量,g代表绿色分量,b代表蓝色分量,他们的范围均为(0,1)。本文颜色传递函数设置如下:vtkCo
12、lorTransferFunction3colorTransferFunction=vtkColor2TransferFunction:New();colorTransferFunction-AddRG BPoint(0.0,0.5,0.0,0.0);colorTransferFunction-AddRG BPoint(600.0,1.0,0.5,0.5);colorTransferFunction-AddRG BPoint(1280.0,0.5,0.5,0.3);colorTransferFunction-AddRG BPoint(1960.0,0.5,0.77,0.6);colorTran
13、sferFunction-AddRG BPoint(4095.0,0.5,0.9,0.9);最后,利用vtkVolumeProperty类设置体属性,同时利用vt2kVolumeRayCast Mapper类建立光线投射映射对象。用vtkVolume类建立体对象,利用其函数Set Mapper()设置光线投射映射对象,利用函数SetProperty()设置体的属性。最后通过与W indows窗口的绑定,完成绘制。2 重建结果显示依据上述体绘制模型,结合Visual C+6.0,利用VTK库进行了编程试验,试验数据为基于D ICOM标准的人体CT图像。其中头部图像数据为512512234,足部图
14、像数据为512512350,重建结果如下图所示。由图2,图3可以看出,本文采用RayCasting方法可以较为精确的实现医学图像的三维重建,并可进行旋转、缩放、移动等交互操作,为进一步观察提供了保证。3 结束语VTK是国际上主流的三维可视化工具包。本文在Visual C+6.0环境下,借助VTK类库采用Ray Casting方法对D ICOM医学图像进行了体绘制,重建结果较好,真实地再现了物体的三维面貌,同时可以交互的进行旋转、平移等操作,具有较强的实用性。但是由于体绘制数据量很大,绘制速度较慢,如何提高重建速度是下一步研究的重点。参考文献:1 田捷,赵明昌,何晖光.集成化医学影像算法平台理论
15、与实践M.第一版,北京:清华大学出版社,2004:111-113.2http:/www.vtk.org.3W illiam J.Schroeder.The VTK Users Guide.New York,USA:Kitware,Inc.2001:1-377.4 郭圣文.利用VTK与ITK的集成实现医学图像可视化J,计算机工程与应用,2006,30:183-184.5 周芳芳,樊晓平,叶榛.基于多尺度等值面设计传递函数J,小型微型计算机系统,2007,28(1):144-147.作者简介 王树秀(1984),女,硕士,主研方向:医学图像三维重建、医学图像处理;雷声(1984),男,博士,主研方向:医学图像处理、生物医学传感器;常发亮(1965),男,教授,主研方向:机器视觉与智能控制、医学图像处理。(收稿日期:2008-04-30)1994-2010 China Academic Journal Electronic Publishing House.All rights reserved.http:/
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1