利用VTK实现DICOM医学图像三维重建.pdf

上传人:b****2 文档编号:3176269 上传时间:2022-11-19 格式:PDF 页数:2 大小:238.93KB
下载 相关 举报
利用VTK实现DICOM医学图像三维重建.pdf_第1页
第1页 / 共2页
利用VTK实现DICOM医学图像三维重建.pdf_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

利用VTK实现DICOM医学图像三维重建.pdf

《利用VTK实现DICOM医学图像三维重建.pdf》由会员分享,可在线阅读,更多相关《利用VTK实现DICOM医学图像三维重建.pdf(2页珍藏版)》请在冰豆网上搜索。

利用VTK实现DICOM医学图像三维重建.pdf

信息技术与信息化图像处理2008年第5期115利用VTK实现DICOM医学图像三维重建3DReconstructionofDICOMMedicalImagesBasedonVTK王树秀3雷声33常发亮3WANGShu-xiuLEIShengCHANGFa-liang摘要利用医学可视化技术可以将二维断层序列图像重建为三维虚拟实体,基于这个模型可以精确地获取病变区的大小、位置和形状,极大地提高了诊断的直观性与交互性。

VTK是目前国际上通用的科学计算可视化工具包,DICOM文件为医学图像的专用传输和存储格式。

在VisualC+6.0平台下,本文借助VTK类库,采用体绘制方法实现了DICOM医学序列图像的三维重建,并给出了程序运行结果。

关键词三维重建DICOMVTK体绘制3山东大学控制科学与工程学院济南25006233浙江大学生物医学工程与仪器科学学院杭州310027基金项目:

国家自然科学基金(No.60775023);山东省自然科学基金(No.Z2005G03)。

DICOM(digitalimageandcommunicationonmedicine)文件格式为目前国际通用的医学影像专用的传输和存储格式,在PACS系统中得到了广泛的应用。

DICOM图像三维重建是指将二维DICOM序列医学图像通过特定的重建算法重建为三维虚拟实体,可以较为准确的获得病变区的大小、位置、形状等三维信息,为进一步的病情诊断、虚拟手术等提供了更为丰富直观的信息和交互手段,极大地方便了医生的诊断治疗。

医学图像三维重建方法可以分为面绘制(SurfaceRendering)和体绘制(VolumeRendering)两大类。

面绘制算法中具有代表性的是MC(MarchingCubes)算法,它通过对一系列的二维图像进行边界识别等分割原理,将感兴趣的部分以等值面的方式抽取出来,从而为用户提供较具真实感的三维图像。

这种方法的优点是重建速度较快,内存资源需求较小,缺点是易丢失纹理细节。

体绘制算法主要包括光线投影算法(RayCasting),脚印法(Splat2ting),剪切变形法(Shear-Warp),其中RayCasting算法是体绘制中的经典算法,它是从投影平面的每一个像素点发射出一条光线,穿过三维体数据场,并计算光的传输方程,得到最后的图像1。

这种方法的缺点是内存需求大,绘制速度较慢,但是它保存了整体细节,绘制效果较好,可以很方便地实现一些插值算法。

本文采用RayCasting算法作为三维重建方法,同时由于传递函数的设置对体绘制结果有很大影响,详细介绍了传递函数的设置,并给出了关键代码。

1基于VTK的DICOM图像三维重建1.1VTK简介VTK(TheVisualizationToolkit)是美国Kitware公司推出的一个开放源码的自由软件系统,可以应用于图像处理、计算机图形学和科学计算可视化,最新版本为5.0.4。

VTK完全采用面向对象的设计思想来设计与开发,支持Windows,Unix与Linux等多种平台,支持C,C+,Java,Tcl/Tk以及Python等编程语言4。

VTK将众多常用的图形操作、图像处理算法封装成不同的类,非常易于理解和调用。

与此同时VTK具有很好的流(streaming)和高速缓存(catching)能力,这些都使得VTK成为医学图像可视化开发的一个较好的选择。

1.2VTK读取DICOM医学图像现有的VTK封装了可以直接读取DICOM图像的C+类vtkDICOMImageReader,极大地简化了使用VTK工具包读取DI2COM医学图像的过程。

以下为读取DICOM序列图像的代码:

vtkDICOMImageReader3reader=vtkDICOMImageReader:

New();reader-SetDataByteOrderToLittleEndian();reader-SetDirectoryName(filedirectory);/filedirectory为存放图像的路径reader-Update();1.3三维重建的实现本文采用光线跟踪算法(RayCasting)作为体绘制的基本算法。

基于VTK类库的体绘制管道模型如图1所示。

vtkImageShiftScale和vtkImageCast主要用于数据类型的转换。

在图像处理管道中,vtkImageCast主要是转换输入数据类型以匹配输出数据类型,由函数SetOutputScalarType来实现。

在vtkIm2ageShiftScale,输入图像被移动和缩放,主要由以下两个函数实现:

virtualvoidSetShift(double)和virtualvoidSetScale(double),转换后的像素值=(原像素值+平移值)伸缩值。

与此同时,这个类也可以通过函数SetOutputScalarType转换数据类型。

本文采用vtkImageShiftScale进行数据转换。

在体绘制中传递函数将体数据转换为光学参数,因此体绘制的效果直接由传递函数决定。

传递函数主要有三类:

不透明度传递函数、颜色传递函数和梯度传递函数。

不透明度传递函数主要是确定各体素的不透明度,由vtkPieceWiseFunction来设置,vtk2PieceWiseFunction定义了分段函数映射,由AddPoint()和AddSeg2ment()实现数值点的添加。

关于这两个函数的具体参数如下:

1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.http:

/图像处理信息技术与信息化1162008年第5期图1体绘制管道模型intAddPoint(doublex,doubley)x代表体素的灰度值,y代表该体素点的透明度,其范围为0,1,0代表完全透明,1代表完全不透明。

voidAddSegment(doublex1,doubley1,doublex2,doubley2)这个函数的功能是添加一条直线段,起点坐标(x1,y1),终点坐标(x2,y2),其含义与上述(x,y)类似。

针对本文所使用的DICOM医学图像,不透明度传递函数设置如下:

vtkPiecewiseFunction3opacityTransferFunction=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);opacityTransferFunction-AddPoint(2000,.3);opacityTransferFunction-AddPoint(4095.0,1.0);颜色传递函数主要是确定体素的颜色值或灰度值,由类vtk2ColorTransferFunction实现。

根据AddRGBPoint()设置数值点的颜色值。

函数具体参数如下:

intAddRGBPoint(doublex,doubler,doubleg,doubleb)x代表体素点的灰度值,含义与上述相同,r代表红色分量,g代表绿色分量,b代表蓝色分量,他们的范围均为(0,1)。

本文颜色传递函数设置如下:

vtkColorTransferFunction3colorTransferFunction=vtkColor2TransferFunction:

New();colorTransferFunction-AddRGBPoint(0.0,0.5,0.0,0.0);colorTransferFunction-AddRGBPoint(600.0,1.0,0.5,0.5);colorTransferFunction-AddRGBPoint(1280.0,0.5,0.5,0.3);colorTransferFunction-AddRGBPoint(1960.0,0.5,0.77,0.6);colorTransferFunction-AddRGBPoint(4095.0,0.5,0.9,0.9);最后,利用vtkVolumeProperty类设置体属性,同时利用vt2kVolumeRayCastMapper类建立光线投射映射对象。

用vtkVolume类建立体对象,利用其函数SetMapper()设置光线投射映射对象,利用函数SetProperty()设置体的属性。

最后通过与Windows窗口的绑定,完成绘制。

2重建结果显示依据上述体绘制模型,结合VisualC+6.0,利用VTK库进行了编程试验,试验数据为基于DICOM标准的人体CT图像。

其中头部图像数据为512512234,足部图像数据为512512350,重建结果如下图所示。

由图2,图3可以看出,本文采用RayCasting方法可以较为精确的实现医学图像的三维重建,并可进行旋转、缩放、移动等交互操作,为进一步观察提供了保证。

3结束语VTK是国际上主流的三维可视化工具包。

本文在VisualC+6.0环境下,借助VTK类库采用RayCasting方法对DICOM医学图像进行了体绘制,重建结果较好,真实地再现了物体的三维面貌,同时可以交互的进行旋转、平移等操作,具有较强的实用性。

但是由于体绘制数据量很大,绘制速度较慢,如何提高重建速度是下一步研究的重点。

参考文献:

1田捷,赵明昌,何晖光.集成化医学影像算法平台理论与实践M.第一版,北京:

清华大学出版社,2004:

111-113.2http:

/www.vtk.org.3WilliamJ.Schroeder.TheVTKUsersGuide.NewYork,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-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.http:

/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1