基于区域生长法的冠状动脉三维分割
2016-10-29刘杰程云章谭启璐韩承航
刘杰,程云章,谭启璐,韩承航
(上海理工大学医疗器械与食品学院,上海200093)
1 引 言
冠心病是严重危害人类健康和生命的疾病,近年来冠心病的发病率和死亡率均呈现显著增长的趋势[1]。据估计全国有心血管疾病患者高达2.3亿人,每年死于心血管病的约300万人,其中绝大部分是死于冠心病心肌梗塞及其相关的心力衰竭[2]。尽早地发现冠心病,对临床医生制定合理的治疗方案有着重要的意义。随着医学成像技术和医学图像处理技术的发展,针对医学图像的三维重建及分割算法的研究成为该领域的热点,获得一个良好的分割结果可为医生的诊断提供可靠的依据。
由于医学图像本身的特殊性以及复杂性,使得准确快速的分割出冠状动脉血管具有一定的挑战性。目前国内外常用的医学图像分割方法有测地活动轮廓法、快速行进法和区域生长法等。其中测地活动轮廓法和快速行进法不仅算法执行时间长,且精度也不是很高。而区域生长算法则充分考虑了相邻体素间的相似性质(如灰度和梯度等),同时还可以结合其他先验知识,作为生长过程的准则,是一种较为理想的图像分割方法[3]。因此,本研究采用区域生长法对冠状动脉进行三维分割。
2 三维重建
2.1 光线投射法的基本原理
光线投射法是一种基于图像空间扫描的,生成高质量图像的典型体绘制算法。其基本思想是从图像平面的每个像素出发,沿视线方向发出一条射线,射线上按照一定的步长进行采样,当射线穿过体数据集时,由内插计算每个采样点的颜色值和不透明度,然后由前向后或由后向前逐点计算累计的颜色值和不透明度,直至光线被完全吸收(透明度累加至1)或穿过物体时,采样结束[4]。其原理示意图见图1。
图1 光线投射法原理Fig 1 Theory of ray casting method
在进行体数据合成的过程中,需要把体数据投影到观察平面上,产生结果图像。投射光线射向体数据时,颜色值和不透明度被合成到一起来产生结果图像的亮度[5]。对于光线穿过的每一个单位正方体,从半透明模型[6]可以得到如下公式:
其中 c(xi)为光线上采样点的颜色值,α(xi)为采样点的不透明度,cin为光线穿过采样点前的颜色值,cout为光线穿过采样点之后的颜色值。这里采样点的颜色值和不透明度都是对采样点所在的单位立方体的八个顶点体素的颜色值和不透明度进行三线插值得到的。
公式(1)描述的是光线从后向前的组合过程,也可以采用从前向后的组合过程,公式可表示如下:
光线从后向前的组合过程可以直接计算颜色值,而从前向后的组合过程不但要计算颜色值还要计算沿光线累加的不透明度。不过后者可以利用这个累加的不透明度来设置停止准则,即当透明度累加到1时,后面体素的光线将因为完全被挡住而对结果图像没有贡献,此时的cout就是结果图像的颜色值。本研究选用从前向后的组合过程。
2.2 算法实现
本研究利用光线投射法,结合VTK函数库,对患者胸腔CT图像序列进行三维重建。VTK(visualization toolkit,VTK)是一种基于Open-GL的用于3D图形学、图像处理及可视化的工具包。它容纳了图像和可视化领域内的上百种算法。利用VTK的可视化技术,可方便的实现将连续的断层图像合成为三维实体模型。
利用VTK进行体渲染(光线投射法)的前提是映射出颜色值和不透明度,两种映射分别由vtkColorTransferFunction类和vtkPiecewiseFounction类构造完成,不透明度映射的参数设置为(350,1.0),(100,0.05),(1,0.05)。颜色映射的参数设置为(1,1,1,0),(100,1,1,0),(101,1,0,0)。将创建好的映射函数需要分配给vtkVolumeProperty对象,该对象之后又将作为属性(包括颜色、标量不透明度、梯度不透明度等)关联到vtkVolume上。最后通过将图像添加到显示窗口中,并加入交互器,实现了患者胸腔三维模型的显示和交互。三维重建结果见图2。
图2 三维重建处理结果Fig 2 Consequences of three-dimensional reconstruction
3 三维分割
3.1 区域生长法的基本理论
如今传统的人工分割方法由于其效率低等劣势正逐渐被淘汰,半自动以及全自动分割技术,作为计算机辅助诊断的重要组成部分,成为人们关注的焦点。区域生长法是各类半自动图像分割算法中效率较高的算法之一[8],在算法的执行速度以及准确性方面都有较高的性能[9],并且已经广泛应用于血管分割。其基本思想是将具有相似性质的像素集合起来构成区域[10]。目前,区域生长法在二维图像分割中已经得到了广泛的应用,本研究将此方法由二维分割层面扩展到三维分割层面,以得到具有足够精度的冠脉模型。其实现步骤[11]及原理图见图3。
图3 区域生长法原理Fig 3 Theory of region growing method
第一阶段,进行种子点或种子区域的选取以及阈值的设定。种子点位于待分割区域内,由一个或一系列像素点(或体素)构成,同时建立一个空栈,并将种子点存入其中。
第二阶段,研究种子点邻域中尚未经过处理体素点T,T可表示为:
其中N(x)表示点x的邻域,Ai表示被选取的种子点或种子区域。按照指定好的相似性准则判断,将满足条件的体素作为新的种子点归入栈中。其中相似性判据可以写作下式:
其中g(x)表示种子点x处的灰度值,g(y)表示种子点邻域y处的函数值,α为设定的阈值。如果我们将单一的种子点变为种子点序列时,则使用种子点序列的灰度平均值替换单一种子点的灰度值[12],可将式(4)转化为 :
如果我们将阈值参数化表示时,可将其表示为任一体素点与其邻域内其他体素点灰度值之差的最小值[13],则 α可表示为:
其中 g(y),g(q)均表示种子点邻域内任一点的灰度值。所以此时式(4)可写为:
第三阶段,随着迭代的进行,当没有更多的新种子点产生时,则区域生长法结束,此时栈中的所有体素所构成的区域即为分割结果。
3.2 算法实现
ITK是一个用于医学图像处理的函数库,其中包含丰富的图像分割算法程序。对于区域生长算法,ITK中封装有 itkConnectedThresholdImageFilter类、itkConfidenceConnectedImageFilter类以及 itk-NeighborhoodConnectedImageFilter类分别进行连通阈值、置信连接和邻域连接的分割处理。连通阈值需要用户设定初始参数,包括种子点坐标、上阈值和下阈值[14]。判定规则为,判断种子点邻域内的某一点灰度值是否满足上下阈值区间,满足则归入栈中,否则将其忽略。置信连接需要设定的初始参数有种子点坐标、乘法因子f和种子点邻域大小[15]。判定法则为,首先计算当前区域内体素灰度值的期望m和标准差σ,之后构造一个置信区间[m-fσ,m+fσ],邻域内灰度值处于该区间的体素归入栈中,否则将其忽略。邻域连接法与连通阈值法的操作大致相同,区别在于其初始参数包含某一点的邻域大小,当某一点及其被指定邻域内各点的灰度值均处于阈值范围内才将该点归入栈[14]。参数设置见表1。
表1 三种分割算法各自的参数设置Table 1 Manually parameter setting of three segmentation algorithm respectively
三种分割方法的结果见图4;运行时间见表2。
比较三种分割结果得出,连通阈值和置信连接算法的分割结果中细节损失较小,精度相对较高,而邻域连接算法对图像中一点及其邻域的同一性判据要求较高,所以此方法过滤图像噪声的鲁棒性较强,但分割结果中细节损失较大。从程序的运行时间上可以得出,置信连接算法由于算法本身需要计算区域内体素的期望和标准差,所以耗时最多,效率最低。另外两种分割方法的运行时间则相对较少。因此,从算法的分割精度以及分割效率综合考虑,连通阈值分割方法较为理想。
图4 (a)置信连接算法;(b)连通阈值算法;(c)邻域连接算法Fig 4 (a)Confidence connecting;(b)Connected Threshold;(c)Neighborhood connecting
表2 三种分割算法各自的运行时间Table 2 Performance periodof three segmentation algorithm respectively
4 讨论与结论
本研究首先对三种图像分割算法进行比较,得出区域生长算法操作简单、对图像的中间处理环节较少,对图像的细节损失以及运算量等方面也比较少,因此将其作为三维分割算法的最终选择。
在三维重建过程中,利用光线投射法,结合VTK开源软件包,可以方便的对患者胸腔断层图像临床样本进行三维重建。通过设置不同的颜色值函数和不透明度函数,可以分别显示不同的组织,便于人们观察其解剖结构。在冠状动脉模型的分割过程中,将传统的区域生长法应用于三维情形,并结合ITK函数库,可以实现对三维模型中感兴趣区域的分割。
实验结果表明,该方法可以成功的提取出冠状动脉的主干结构,有助于医生直观的了解冠状动脉的解剖结构及病灶三维形态,同时也为实现冠状动脉狭窄的无创化诊断提供有利条件。