基于VTK的CT图像三维重建与可视化

2015-06-07 11:59王冬欣
实验室研究与探索 2015年8期
关键词:体素等值三维重建

王冬欣, 李 哲

(吉林大学 仪器科学与电气工程学院,吉林 长春 130061)



基于VTK的CT图像三维重建与可视化

王冬欣, 李 哲

(吉林大学 仪器科学与电气工程学院,吉林 长春 130061)

在医学辅助教学或临床诊疗中,为了帮助研究人员对人体内部信息的观察和检测,需要对医学CT数据进行三维可视化。针对这一情况,为了更好地实现医疗三维可视化效果,提出以可视化工具包VTK和VC++6.0为开发平台,并对可视化工具VTK的基本组成、可视化原理和流程进行了研究分析,采用面绘制的Marching Cubes算法和体绘制的Ray Casting算法对医学CT图像三维可视化。实验结果表明,采用上述算法对CT图像进行可视化能够得到很好的重建效果。

三维可视化; VTK; 面绘制; 体绘制

0 引 言

图像三维可视化是计算机图形学的一个重要研究方向,它能够重建出内部结构复杂数据三维图像,以得到在二维断层图像中无法获得的结构信息,从而提高了二维图像数据的利用率。因此,在医学图像、地质构造、地层分布、石油勘探等领域中得到广泛的应用。其中,对医学CT数据的可视化由于其临床应用价值已成为目前重要的研究内容[1]。

本文通过两种算法分别对医学CT图像三维可视化,并实现了对重建图像的旋转、缩放、平移等交互操作,便于从任意角度和层面对重建图像进行观察与综合分析,对测量人体骨骼内部结构参数及后续研究提供了基础理论依据和技术支持。

1 层析成像算法

滤波反投影(Filtered Back Projection, FBP)算法是层析成像中的经典算法[2],它是先对投影数据进行滤波处理以修正图像,再将修正后的投影数据按原投影路径的反方向投回到断层图像各体素中的方法,具有重建效果好、运算速度快等优点。其重建过程如图1所示。

图1 FBP重建算法流程

图像投影数据p(t,θ)的获得通过Radon变换实现[3]。Radon变换的定义为图像μ(x,y)沿任意直线方向的线积分,即投影值为

(1)

而直线L(t,θ)方程为

(2)

当θ(与x轴夹角)值不变时,改变t的值可得到θ方向上的投影数据;改变θ值,可得到不同方向上的投影数据。

通过滤波方法对投影数据p(t,θ)进行修正时[4-6],滤波函数的选择是重点问题。其中,R-L滤波函数和 S-L 滤波函数是两种常用滤波函数。R-L滤波函数的采样序列为:

(3)

式中:n为采样点的位置;d为采样点间距。S-L滤波函数的采样序列为:

(4)

在含有高频成分的投影数据中,常选用S-L滤波器来抑制噪声,以减小重建后图像的振荡响应。

修正后的投影数据q(t,θ)反投影重建,能够改善对投影数据直接反投影重建时由伪迹导致的图像失真现象。下式为求重建后图像的方程:

(5)

其中,φ(0≤φ≤π)为投影视角。

2 可视化工具包

可视化工具包(Visualization Toolkit,VTK)是可视化领域中重要的科研和开发工具,是由美国Kitware公司推出的一个通用可视化类库。包含上百种图形图像和可视化算法,主要用于三维计算机图形学、图像处理和可视化。本系统基于VTK与VC++6.0为开发平台,采用C++语言来调用VTK的类库函数,实现对医学CT图像数据的读取、重建、显示和交互等操作[7]。

3 VTK的可视化流程

VTK通过流水线工作机制,将不同模块连接成可视化网络对数据进行处理,实现可视化[8]。其基本流程如图2所示,包括图形模型和可视化模型;Source为流水线的开始,读取原始数据,并保存在总类vtkSource或其子类中;原始数据经过不同滤波器Filter预处理后,转换成适合所需求算法的数据并输出,实现数据类型的转换;再将转换后的数据通过Mapper映射为图形数据,完成由数据到图形的映射;图形数据需要进行实体化以使绘制结果能被人们观测到,实体化过程通过Actor来完成;最后调用Render和RenderWindow将绘制结果在电脑窗口中渲染显示,设置vtkRender类中的光照、原点位置、视角等信息实现对Actor的渲染,Render和RenderWindow提供了图形引擎和电脑视窗系统之间的接口。基于VTK的CT图像可视化能够实现用户与三维图形的交互,使用者借助鼠标可以完成图像旋转、缩放等操作,便于对图像的多方位观察。交互功能通过对RenderWindowInteractor的设置实现。

图2 VTK可视化流程

4 可视化的实现

基于VTK的图像三维重建主要有面绘制和体绘制两类。

面绘制是提取图像中需要重建部分的表面轮廓信息进行三维绘制,只重建物体的表面,适用于表面特征明显的物体。由于面绘制处理的是体数据场中的部分数据,因此,具有运算量小、速度快的优点;但同时也造成了图像信息的大量丢失,数据保留不完整,使得重建后的图像无法展示出物体的内部特征信息。

体绘制面向的是整个体数据,是对体数据场中每一个体素进行处理,因此,运算量增大,绘制速度较慢。经体绘制重建后的图像,能够显示物体内部构造信息和细节,重建效果相对于面绘制更加精确,但缺乏物体的表面几何信息。

4.1 CT图像的面绘制

面绘制的算法有很多,本文采用Marching Cubes算法对医学CT断层图像进行面绘制[10-11]。其原理是将一系列二维CT数据看作一个三维体数据场,取连续两层相邻的8个数据点组成大小相等的立方体,称为体素,体素的8个顶点叫做角点,如图3所示。设定一个阈值T,遍历每个体素中8个角点u(i,j,k)的数据值,与预先设定的阈值T进行比对,得出每个体素中角点的状态值,小于预设阈值的标记为0,大于预设阈值的标记为1。根据状态值找到存在等值点的体素。体素中的每一点可通过线性插值方法算出,其公式为:

p(x,y,z)=k0+k1x+k2y+k3z+

k4xy+k5xz+k6yz+k7xyz

(6)

其中,ki=(i=0,1,…,7)是由角点唯一确定的常数。提取出的等值点,由式(6)计算出其灰度值,再以某种拓扑形式连接成三角面片,拼接形成等值面,即

等值面的正确连接需要通过线性插值方法计算出等值点坐标和法向量,计算公式为:

(7)

(8)

其中:C为等值点坐标,C1、C2为等值点两端点坐标;N为法向量,N1、N2为两端点法向量;T1、T2为两端点灰度值。

图3 Marching Cubes算法中体素

根据VTK可视化的基本流程,Marching Cubes算法中对等值面的提取由vtkContourFilter类来实现;在数据处理过程中vtkContourFilter类完成了对三角面片的消减,并通过vtkSmoothPolyDataFilter类对图像进行平滑处理;vtkPolyDataNormals 类在等值面上产生法向量,最后通过vtkStripper 类将在等值面上产生的三角面片连接。CT图像面绘制效果如图4所示。

图4 CT图像面绘制效果

4.2 CT图像的体绘制

基于VTK的体绘制主要有Ray Casting法、纹理映射法和基于硬件的VolumePro法[12]。其中,Ray Casting法能够更好地保留数据内容,且计算速度快,因此,本文采用Ray Casting法对CT图像进行体绘制。Ray Casting法是对图像进行空间扫描,生成高清晰图像。其原理如图5所示,在由屏幕上每一像素点发出的一条穿过三维体数据场的射线上设置采样点,采样点间的距离相等;将某一采样点周围,距离其最近的8个数据点组成一个体素,并对这个体素的颜色值和不透明度分别进行三次线性插值计算;由此求出全部采样点的颜色值及不透明度并分别对它们进行合成,合成方式可以是从前到后或从后到前[13-15]。本文采用从前到后的合成方式,其公式为:

(9)

(10)

其中:CVi、OpVi分别为第i个采样点的颜色值和不透明度;CINi、OpINi为采样点进入第i个体素的颜色值和不透明度;COUTi、OpOUTi为采样点与第i个体素合成后的颜色值和不透明度。在全部采样点通过式(9)、(10)处理后,此数据场的体绘制完成。

图5 Ray Casting法

体绘制过程一般分为投射、消隐、渲染和合成4个步骤。VTK中对Ray Casting法提供了3种函数:最大密度投影函数vtkVolumeRayCastMIPFunction、等值面绘制函数vtkVolumeRayCastIsosurfaceFunction和合成体绘制函数vtkVolumeRayCastCompositeFunction。体绘制时,为了得到更加精准的效果,需要定义不透明度传递函数、颜色传递函数和梯度传递函数三个函数。在CT数据读入后,利用vtkPiecewiseFunction类对传递函数进行设计,数据通过传递函数后其灰度值转换成颜色值、梯度或不透明度等[16]。本文选用由vtkVolumeRayCastCompositeFunction类定义的光线合成函数进行绘制。当全部数据经过Ray Casting法计算后,再对数据进行窗口绘制、显示、交互等处理,完成体绘制。CT数据的体绘制效果如图6所示。

图6 CT图像体绘制效果

体绘制中,对不同的物质分配相应的透明度,可以将各物质间的形状特征和层次关系对比出来,因此,透明度的引入提高了数据的整体显示效果。

5 结 语

本文将VTK可视化工具包应用到医学CT断层图像的重建中,明显提高了可视化性能和可视化效果。在可视化性能和效果方面,首先,通过面绘制可以实现对骨骼表面信息的获取,为分割等操作提供了整体信息,也为进一步的深入分析提供了基础研究平台。其次,体绘制能够保存数据较丰富的三维信息,对面绘制中部分信息的缺失进行了弥补。同时,对CT数据可视化过程中需要处理大量的二维断层数据的问题,VTK具有的高速缓存能力,可以处理大规模数据并提供技术支持。在人机交互方面,能够直接通过鼠标对重建后的三维模型进行大小、视角方位等方面的调整操作,便于研究者对重建图像的全方位观察,提高了系统的人机交互能力,有利于精准提取有用信息。因此,以可视化工具VTK为平台对医学CT图像进行三维可视化,提高了可视化的性能和效果,完善了人机交互系统,为测量内部结构参数以进行后续研究提供了理论和技术基础,具有很好的应用价值。

[1] 黄姗姗,王博亮,闵小平. 基于VTK的可视化技术的研究[J]. 中国数字医学,2007,3(1):31-34.

[2] 郑 健,俞 杭,蒯多杰,等. 多层CT重建算法对比研究[J]. CT理论与应用研究,2012,21(4):678-687.

[3] Johann Radon. On the Determination of Functions From Their Integral Values Along Certain Manifolds[J]. IEEE Transactions on Medical Imaging,1986,5(4):170-176.

[4] 王志伟,于 强,舒春梅,等. 计算机模拟CT滤波反投影重建的方法化[J]. 中国医学物理学杂志,2010,27(2):1737-1740.

[5] 兰勇生,渠刚荣,郝春雷. 满三维图像重建的卷积反投影算法[J].中国体视学与图像分析,2005,10(3):170-173.

[6] 张顺利,李卫斌,唐高峰. 滤波反投影图像重建算法研究[J]. 咸阳师范学院学报,2008,23 (4):47-49.

[7] William J Schroeder. The VTK User’s Guide[M]. Kitware. USA, 2001.

[8] 洪 涛,潘志方,林立本,等. VTK医学图像三维重建应用及实现[J]. 计算机系统应用,2011,20(4):127-131.

[9] 张 翔,陈胜勇. 利用VTK的DICOM图像的显示与信息的读取[J]. 人工智能及识别技术,2011,7(10):2343-2344.

[10] 陈文文,姜富春,车翔玖. 基于面绘制的医学序列图像三维重建[J]. 计算机工程与应用,2012,48(16):168-172.

[11] 许婉璐,李 彬,田联房. 基于MC算法的高质量脊椎CT图像三维重建[J]. 计算机应用与软件,2013,30(6):80-83.

[12] 吕金坤. 基于VTK的工业图像三维可视化技术研究[D]. 太原:中北大学,2013.

[13] 韩成虎,韩成龙,邱文峰. CT图像三维重建系统的设计与实现[J]. 现代计算机,2013(2):54-57.

[14] 张振东. 基于Matlab的CT图像三维重建的研究与实现[J]. 电子世界,2013,2(3):87-88.

[15] 罗火灵,许永忠,陈世仲. 基于VTK和MFC的医学图像三维重建研究与实现[J]. 生物医学工程学进展,2010,31(1):23-28.

[16] 韩成虎. CT图像三维重建技术的研究与应用[D]. 广州:华南理工大学,2010.

Study on 3D Reconstruction and Visualization Technology of CT Image Based on VTK

WANGDong-xin,LIZhe

(College of Instrumentation and Electrical Engineering, Jilin University, Changchun 130061, China)

In medical computer assisted instruction and clinical diagnosis, 3D visualization of medical CT data can help researchers to observe and detect the internal information. In view of this, in order to achieve better visual effect of medical CT images, we propose an development platform based on visualization toolkit and VC++6.0, and analyze the basis composition and the principle of VTK. Marching Cubes algorithm of surface render and Ray Casting algorithm of volume render are used to realize 3D visualization of CT images. Experimental results show that this algorithm can effectively obtain the good 3D reconstruction effect of CT images.

3D visualization; VTK; surface render; volume render

2015-01-10

国家自然科学基金(41074082)

王冬欣(1988-),女,吉林吉林人,硕士生,主要研究方向:CT图像处理。Tel.:15164373204;E-mail:dxwang24@163.com

李 哲(1973-),男,吉林长春人,硕士生导师,主要研究方向:计算机X射线摄影,图像处理。E-mail:lizhemail@qq.com

TP 391.41

1006-7167(2015)08-0108-04

猜你喜欢
体素等值三维重建
基于多级细分的彩色模型表面体素化算法
瘦体素决定肥瘦
异步电动机等值负载研究
运用边界状态约束的表面体素加密细分算法
基于Mimics的CT三维重建应用分析
基于体素格尺度不变特征变换的快速点云配准方法
基于关系图的无人机影像三维重建
三维重建结合3D打印技术在腔镜甲状腺手术中的临床应用
电网单点等值下等效谐波参数计算
多排螺旋CT三维重建在颌面部美容中的应用