基于VTK的医学图像三维重建的研究与实现

2013-12-29 00:00:00贺锐钢杜红
电脑知识与技术 2013年1期

摘要:医学图像的三维显示为医生提供了直观、全面、准确的病人病情信息,是当今医学影像领域研究的热点之一。VTK是开源的可视化工具包,在国际上得到广泛应用,具有优秀的架构和运行机制。通过对DICOM医学图像的研究,应用VTK技术,研究了医学图像横断面、冠状面、矢状面显示以及三维重建的方法,该方法对医学图像三维体绘制数据的研究具有一定的实用价值。

关键词: VTK;横断面;冠状面;矢状面;三维重建

中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2013)01-0165-03

VTK是一个开放源码、自由获取的软件系统,全世界的数以千计的研究人员和开发人员用它来进行3D计算机图形、图像处理以及可视化。VTK包含一个C++类库,众多的翻译接口层,包括Tcl/Tk,Java,Python。Visualization Toolkit是一个用于可视化应用程序构造与运行的支撑环境,它是在三维函数库OpenGL的基础上采用面向对象的设计方法发展起来的,它将我们在可视化开发过程中会经常遇到的细节屏蔽起来,并将一些常用的算法封装起来。比如Visualization Toolkit将我们在体绘制中比较常见的Raycasting算法封装起来,以类的形式给我们以支持,这样我们在对三维规则点阵数据进行重建时就不必再重复编写Raycasting算法的代码,而直接使用Visualization Toolkit中已经提供的vtkVolumeRayCastMapper和vtkVolumeRayCastCompositeFunction类共同来完成。Visualization Toolkit是给从事可视化应用程序开发工作的研究人员提供直接的技术支持的一个强大的可视化开发工具。

DICOM标准(digital imaging and communication in medicine)是由美国放射学院(American College of Radiology,ACR)和国家电气制造商协会(National Electrical Manufacturers Association,NEMA)共同制定的,它包括了医学的数字成像和通信传输两个方面。该标准的制定有效地解决了各种不同的成像设备之间交换图像的障碍,促进了数字图像设备的网络化和医学影像技术的发展。

目前在医学图像显示领域,图像二维显示已发展的较为成熟,人们也已把目光放在更高维的显示方面,但是,二维显示却也是不可或缺的。对于医生来说,在研究手术方案时,提供一组二维切片是必要的。该文借助于开源的可视化工具VTK实现DICOM图像横断面、冠状面、矢状面(以下简称为:横冠矢)三个正交面的切片显示,并利用光线投射算法对DICOM图像进行了三维重建。

1 基于VTK的DICOM图像文件读取及显示

1.1 DICOM图像文件的读取及显示

对DCIOM图像进行显示,需要先提取图像数据的各项参数和图像像素数据值;然后判断DCIOM的编码方式,以后顺次读出图像数据的各项参数;最后根据(7FE0,0010)读出图像的像素数据。为了逼真地显示出医学图像的全部信息,通过DICOM图像文件的读取得到窗位与窗宽信息,然后采用图像数据窗口变换方法,将图像数据窗口变换成数据观察窗口,将窗口区域的图像数据线性转换到显示器的最大显示范围内,将高于或低于窗口上下限的图像数据分别设置为最亮显示值或最暗显示值。这样通过动态地调节窗口的窗宽(图像数据的显示范围)和窗位(显示的图像数据的中心值),就可以实现医学图像的全部细节[1]的显示。

DICOM文件的读取和显示是采用VTK中封装的类来实施,主要调用了vtkImagePlaneWidget函数管理正交面的显示,充分利用了Widget的交互式特点,通过拖动鼠标的来改变切片的位置进行不同切面的显示。

对于正交面的管理,由Widget内部的vtkImageReslice对象成员进行控制。定义vtkImagePlaneWidget::VTK_WINDOW_LEVEL_ACTION用来实现窗宽和窗位的调节,然后再通过windows滑块控件的交互,即可实现横断面、冠状面、矢状面的显示[3]。本系统的VTK流水线框图如图1所示,其中框图左边是VTK三维重建流程,右边是横冠矢二维切片显示流程: