基于VTK的任意平面CT图像二维交互分割初步研究
2010-10-09严华刚付璇钱雅君黄菊英李海云
严华刚,付璇,钱雅君,黄菊英,李海云
首都医科大学 生物医学工程学院,北京 100069
基于VTK的任意平面CT图像二维交互分割初步研究
严华刚,付璇,钱雅君,黄菊英,李海云
首都医科大学 生物医学工程学院,北京 100069
研究利用VC++6.0进行基于VTK(Visualization Toolkit)的三维CT图像任意平面的二维交互分割软件的开发。用VTK实现了从三维显示中选取任意方位平面以及该平面对应图像的三维与二维显示,研究在VC++6.0创建的二维视图中进行轮廓勾画和区域生长的功能,实现了在三维图像中将区域生长结果叠加于原二维图像的功能。
CT机;CT图像;VTK;图像分割
本文导读 >>
课题背景:本课题受国家自然科学基金(项目编号:30670576)资助,主要研究基于影像特征的椎体成形术的图像仿真研究,前期部分包括椎体及周围组织的几何形态的特征信息提取与分析,为临床椎体成形术的实施提供图像指导、分析和评估。
偏倚或不足:本研究实现了多层面CT图像在任意平面的二维交互分割和初步结果显示,进一步的工作将进行三维几何形态特征信息的提取与分析。
应用要点:为椎体成形术的临床介入治疗提供一种图像仿真分析系统,有利于降低手术风险,提高介入治疗质量。
0 前言
目前临床上已普遍采用螺旋CT机进行CT成像,所获得的图像具有分辨率高、可三维重建等优点,但也有CT图像普遍存在软组织对比度较差的缺点。CT应用于神经系统的成像取得了巨大的成功,但主要局限于脑成像,应用于周围神经系统时受限于较差的分辨率以及周围组织结构的复杂性。
螺旋CT机工作站上配备的软件一般可根据所得的三维图像重建出任意斜面的二维图像,以利于医生的观察。对于周围神经系统而言,这一点尤为重要,原因在于神经走行方向复杂,任意斜面的二维重建意味着能在多个方位观察神经。美中不足的是,由于神经组织与周围组织对比不是特别显著,不是在每个方位上都能清楚分辨神经走行,特别是最常用的轴位,神经往往难以辨识,一方面由于在脊柱周围组织结构复杂,另一方面由于神经纤维大多上下走行,轴位的截面积很小。但是如果在神经走行的平面上观察,则往往能得到相对清晰的结果。目前螺旋CT机工作站上所装的自动分割软件基本上基于三维图像或轴位图像,要求图像本身有足够好的对比度。对于周围神经这样的结构,其CT图像的分割往往需要医生的经验,因此,如能把自动分割与交互分割结合起来,无疑是最理想的。
现有大多数CT图像工作站不提供斜面的交互分割操作,对于周围神经系统的成像而言,这是个很大的缺点。开发一种支持医学三维图像在任意平面进行交互分割的图像处理软件将有助于解决这个问题。如能结合自动分割功能,无疑能使周围神经实现理想的三维可视化。
VTK是目前应用最广泛的三维图形图像工具集之一[1,2],它提供了三维图形图像的读取、显示、观察和操作等一系列工具。本课题旨在研究借助VTK所提供的图形图像功能,利用MFC(Microsoft Foundation Class)所提供的友好用户界面[1-5],实现CT图像在任意平面的二维交互分割,为将来实现自动分割与交互分割的结合奠定基础。
1 平台设计
本软件的开发基于VC++6.0,用户界面采用了MFC,对CT图像的各种操作则借助了VTK所提供的类库。为了实现二维图像的交互操作,需要从三维图像中选取能随意调整方位的平面。因此本软件设计为三个视图,左视图为三维显示,右视图为平面对应图像的二维显示。左视图还利用VTK自带的多显示端口功能,分为两个显示端口,上端口显示三维体积图,下端口显示三维平面图,如图1所示。
图 1 平台的三个视图设计
2 三维图像的读取和显示
本研究采用了VTK所提供的VtkDICOMImageReader类读取DICOM图像,该类目前无法直接读取三维图像文件和压缩文件,它读取的是CT工作站导出的、存放于某一目录下的系列二维CT图像。
VTK提供了多种三维立体显示方案,包括表面绘制和体绘制。本研究为方便起见,采用了体绘制中的最大密度投影法,其中有一个函数SetSampleDistance()可控制体绘制的速度,它设置体绘制样本点之间的距离,距离越大,样本点越少,绘制速度越快,缺点是绘制更不精细。但这一步骤仅为选取平面提供背景,不影响后续步骤中计算出的二维图像。一般情况下,为了提高速度可将样本点距离选择在8.0以上。
3 交互的实现
本研究所设计的交互操作包括三个方面,首先是从三维图选取任意取向的二维图像,其次是对选取的图像进行组织器官勾画,界定模糊的组织器官边界,再次是利用勾画结果以及图像本身能清晰显示轮廓进行分割,采用的方法是区域生长。
3.1 从三维图像选取任意方位的二维图像
VTK提供了一个在三维环境下进行任意平面选取的工具,对应的库为vtkImplicitPlaneWidget,它提供了交互式改变平面法线方向和平面位置的功能。为了取得此交互工具所得的平面参数(法线方向和平面原点),还需定义一个VTK平面类vtkPlane的对象。最后定义一个回调类来响应对vtkImplicitPlaneWidget的操作,并在此回调类中给对应的vtkPlane对象赋值。VTK为回调类提供了一套接收VTK的键盘和鼠标消息的方法。
回调类中还在平面法线和原点的基础上定义了二维图像的两个正交坐标(记为x’和y’坐标,此定义有一定的随意性)的方向矢量nx’和ny’。之后即可利用VTK中的vtkImageReslice类来计算该平面切割出的二维图像。回调类中还定义了获得平面参数后左视图下显示端口以及右视图的更新。这样只要调节vtkImplicitPlaneWidget平面,即可根据所选平面显示对应图像的三维显示和二维显示。
vtkImageReslice类所得数据的类型为vtkImageData,VTK为此类数据提供了可读取和修改像素数值的指针。后续的勾画以及区域生长都根据该指针对二维图像进行操作。
3.2 对选取图像的勾画
VTK本身有一套对二维和三维图像进行交互操作的工具(vtkRenderWindowInteractor),而且也有自带的利用了MFC并能与VC++6.0融合的类(vtkMFCWindow),但该类的鼠标和键盘响应都被vtkRenderWindowInteractor所接管,包括上面的回调类,也是通过vtkRenderWindowInteractor实现消息响应的。不过可通过修改vtkMFCWindow类来修改和自定义有关键盘和鼠标响应的操作。勾画结果能即时地显示在视图上,勾画完可相应地将勾画结果写入图像数据,使模糊的组织器官边界通过医生的经验加以界定,辅助后续的区域生长。
3.3 基于勾画结果与清晰边界的区域生长
勾画完成后,加上图像本身能清晰显示的边界,意味着在二维图上该结构的边界已完全确定,剩下的只需通过区域生长将其轮廓“采集”下来,为防止区域生长过程跨越勾画轮廓,我们采用了四个方向的生长,结果表明这不会对区域生长的范围造成实际的负面影响。图2给出了一个勾画与区域生长的实例(为清晰起见,未对神经进行勾画)。
图 2 基于勾画结果与清晰边界的区域生长
4 结果的三维显示
在左视图的下显示端口可将区域生长出来的轮廓线叠加到三维图像中。实现这一步需将轮廓的二维平面坐标转换为三维显示的空间坐标。此坐标变换实际利用的是矢量叠加原理。如图3所示,。
图 3 从二维图像坐标到三维空间坐标的转换
设二维像素点在二维图像中的坐标为x'和y',其原点O'在三维空间中的坐标为(x0, y0, z0),由于二维图像的x'轴和y'轴在三维空间的方向矢量分别为nx'和ny',因此该像素点的三维坐标为:
其中括号的下标表示括号内矢量在x, y或z方向上的分量。
将生长的轮廓转换到三维空间后,可叠加显示在二维图像上,结果如图4所示。
图 4 二维交互分割结果的显示
5 讨论
本研究所开发的软件尚有代码效率不够高、区域生长参数调节不够灵活等缺点,在进一步的开发中这些问题将被逐步解决,以提高用户友好性。
软件实现了三维CT图像任意平面二维交互分割的基本操作,为将来实现三维自动分割与交互分割的结合奠定了基础[6-8]。本研究将为临床医生提供一种能在普通PC机上实现的三维图像分割功能,在实现CT图像软组织的三维分割方面将有重要的应用价值,特别是将改变CT图像对周围神经显示不够直观的现状,提高其对周围神经系统的诊断价值。
[1] Schroeder W J. The VTK User's Guide[M]. 4th ed. New York:Kitware Inc., 2001.
[2] 王利,姜红,张兆臣,等.基于VTK的虚拟手术系统中的关键技术[J].中国医疗设备,2009,24(5):58-59.
[3] 姚领田. MFC窗口程序设计[M].北京:中国水利水电出版社,2007.
[4] 郭圣文.集成化三维虚拟手术系统的设计[J].中国医学影像技术,2006(26):1894-1897.
[5] 宋海友.基于VTK的医学图像三维重建及其可视化技术研究[D].成都:成都理工大学,2006.
[6] 邢英杰,张少华,等.虚拟手术系统技术现状[J].计算机工程与应用,2004,40(7):88-90.
[7] 李嘉,胡怀中,等.可视化三维图形库Visualization ToolKit3.2的原理及应用[J].计算机应用与软件,2004,21(2):5-7.
[8] 宋海友.基于VTK的医学图像三维重建及其可视化技术研究[D].成都:成都大学,2006.
Preliminary Investigation on the 2D Interactive Segmentation of CT Image in Arbitrary Plane Based on VTK
YAN Hua-gang, FU Xuan, QIAN Ya-jun, HUANG Ju-ying, LI Hai-yun School of Biomedical Engineering, Capital Medical University, Beijing 100069,China
TP311.52
A
10.3969/j.issn.1674-1633.2010.05.006
1674-1633(2010)05-0021-03
2009-08-18
2010-02-26基金项目:国家自然科学基金项目(30670576)资助。
李海云,教授,硕士研究生导师。
作者邮箱:h_g_yan@yahoo.com.cn
Abstract: The development of software of 2D interactive segmentation on arbitrary plane of a 3D CT image based on VTK using VC++6.0 is investigated. In particular, the selection of a plane in arbitrary orientation from the 3D rendering is implemented using VTK, the functions of contour drawing and region growth in a 2D view created with VC++6.0 is achieved, and the superposition of the region growth result onto the original 2D image in the 3D space is also realized.
Key words: CT; CT Image;VTK;image segmentation