基于Freeman链码的病变肺实质分割
2018-10-24张文莉吕晓琪
张文莉,吕晓琪,2+,谷 宇,2,吴 凉,李 菁
(1.内蒙古科技大学 信息工程学院 内蒙古自治区模式识别与智能图像处理重点实验室,内蒙古 包头 014010;2.上海大学 计算机工程与科学学院,上海 200444)
0 引 言
目前,肺实质的分割方法[1,2]主要包括:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法、基于机器学习的分割方法、基于特定理论的分割方法等[3-8]。这些算法对非病变肺实质的分割效果较好,但在癌变的肺实质中,仅用一种传统的分割算法易产生过分割或欠分割的现象。目前,常采用多种算法融合或改进传统分割算法提高肺实质的分割精度。Dai S等[9]结合改进的图割算法和高斯混合模型以实现肺实质分割,该算法提取的肺癌病变肺实质存在病灶区域遗漏问题。龚敬等[10]提出一种灰度积分投影与模糊C均值聚类算法相结合的肺实质分割方法,该算法计算复杂度高,且分割结果与聚类中心的位置有关。目前,针对肺实质边界模糊提出的修补算法主要有数学形态学法、滚球法、滚圆法、曲率分析法、凸包法等[11-15]。但由于粘连肺壁的肿瘤会致使边界信息严重丢失,滚球法和滚圆法容易陷进缺陷区域,而达不到修补效果。凸包算法对肺边缘的修补精度较高,计算量较小,但无法修补血管型凹陷,受噪声影响较大。本文提出一种改进模糊C均值聚类算法对CT图像进行肺实质分割,然后用八方向的Freeman链码对肺实质的缺失边缘进行修补,该方法对肺实质边缘丢失,尤其是血管型凹陷有着很好的修补作用,且不易受噪声的影响。
1 算法实现与分析
肺实质分割步骤包括肺实质粗分割、支气管移除、左右肺分离、边缘修补。在分析模糊C均值聚类算法、数学形态学运算、曲率分析、滚球算法、滚圆算法、凸包算法和Freeman链码法的基础上提出一种综合算法对肺实质进行分割。原始肺部CT图像如图1所示,图1(a)为大面积病变肺实质的原始CT图像,图1(b)为正常肺实质的原始CT图像。
图1 原始肺部CT图像
1.1 肺实质粗分割
模糊C均值聚类算法是一种经典的图像分割算法,该算法利用图像的空域特征将灰度值相似的像素划分到一簇,且使不同簇之间的相似度最小,从而实现图像分割[10-12]。模糊C均值聚类算法利用模糊隶属度函数的不断更新使目标函数收敛。本文使用改进模糊C均值聚类算法选取合适的阈值将肺部CT图像二值化,该方法能够解决传统阈值存在的过分割的问题。
模糊隶属度函数公式
(1)
其中
(2)
(3)
图2 改进模糊C均值聚类二值化图像
在对患者进行CT检查时,由于患者衣物、检查床等与肺实质的灰度值相近,肺部CT图像二值化后,这些部分和肺实质的值相同,需要把肺实质以外的部分作为背景,其值设置为0。
背景的去除步骤:首先利用八邻域漫水填充算法(Flood Fill)获得肺部CT的背景图像,得到的背景二值图像如图3所示;然后将二值化的肺部CT图像与背景图像做差分运算,肺实质的粗分割结果如图4所示。
图3 背景提取
图4 去除背景的肺实质图像
1.2 肺气管去除
由于肺气管不属于肺实质,在分肺实质分割过程中若不将其去除会影响肺区的进一步分割。粗分割后的肺实质内包含的肺气管部分粘连肺实质,难以完全去除。因此本文采用数学形态学开运算与孔洞填充算法相结合的方法,首先用开运算分离粘连肺实质的气管,然后结合孔洞填充算法去除肺气管树。
开运算公式
A∘B=(AθB)⊕B
(4)
此开运算公式表示B对A开运算,分离粘连肺实质的支气管,且平滑了肺实质的边缘。对粗分割的肺实质进行开运算后,结合孔洞填充去除小面积的肺实质孔洞,然后标记连通区域,用预设面积(2000Pixel)去除干扰区域和主气管。去除支气管后的CT图像如图5所示。
图5 去除肺气管的肺实质图像
1.3 左右肺分离
肺实质分为左、右两大肺区,受部分容积效应及肺部病变的影响,在CT图像的分割过程中易出现左右肺粘连的现象,严重影响肺部疾病后期的诊断和治疗。因此,左右肺分离也是肺实质分割的关键环节。
左右肺分离的步骤主要有:判断左右肺是否粘连、确定左右肺粘连的位置、分离左右肺。本文采用灰度投影积分和行扫描算法分离左右肺。首先对连通区域进行标记,并求出所有连通区域的面积,当给定阈值大于最大的两个连通区域的面积时则判定左右肺粘连,反之则判定左右肺分离;然后用灰度积分投影算法快速定位左右肺的粘连区域;最后通过行扫描和列扫描实现左右肺分离。左右肺分离后的CT图像如图6所示。
图6 左右肺分离
1.4 边缘修补
由于肺部有粘连胸腔的肿瘤,在肺实质粗分割后,对肺区轮廓进行修复才能获得包含肿瘤的肺实质区域。凸包算法在进行肺实质修补时,由于内侧边缘有噪声存在,该算法无法达到预期的修补效果。滚圆法或滚球法对肺实质边界进行修补时,如果半径选取较小,则滚圆或滚球可能会陷入凹陷区域,而达不到修补的目的;如果半径选取过大,就会将肺实质以外的组织包含至肺实质内,进而影响肺实质的分割精度。Freeman链码分为八连接链码和四连接链码,如图7所示。通过一个指定长度与方向的直线段的连接序号对边缘进行跟踪。Freeman链码生成的三链码差对图像边缘的凸凹性判断准确度高,且不受噪声影响。另外,八方向Freeman链码生成的三链码差对图像边缘的凹凸性判断更精确。本文采用八方向三链码差,八连接链码描述边界时的链码值与边界坐标(x,y)的对应关系见表1。
图7 Freeman链码
表1 八邻域链码值与边界坐标(x,y)的对应关系
基于Freeman链码的边界描述首先要确定链码的起点和方向,八方向连接的链码每旋转45度链码值增加1。利用三链码差进行凹凸性判别时,若链码差小于-1,则此点为凸点,若链码差大于2,则此点为凹点,并利用循环寻找凹凸点坐标,若相邻两个凸点中间有一个凹点,则将这两个凸点用直线算法连接,完成边界的修补。该修补算法能准确检测出边界缺失的部分,并进行修补。图8(a)、图8(b)、图8(c)为大面积病变的肺实质边缘修补后效果图,图8(d)、图8(e)、图8(f)为正常肺实质边缘修补后效果图。
图8 修补后的肺实质
2 实验结果
本文所用的肺部CT影像来源于LIDC数据库,为验证本文算法的有效性,从LIDC中随机抽取20个序列进行实验,所有序列中每一帧的像素均为512*512。实验工具为MATLAB R2014a,计算机环境为Intel(R) Core (TM) i7—3770 CPU,3.40 GHz,8 GB内存,64位操作系统。图9(a)与图9(b)为本文方法分割结果,图9(c)与图9(d)为专家手动分割结果。从图中可看出本文算法分割出的肺实质接近临床放射科专家手动分割结果。
图9 本文算法与金标准分割结果
为定量分析本文方法分割的准确率,将本文算法与临床放射科专家手动分割金标准进行对比,采用式(5)Dice系数(手动分割区域与本文算法分割区域的相似性测度)和式(6)绝对容积误差Q作为评价标准
(5)
(6)
其中,S为本算法分割结果,R为医生手动分割结果,V为分割区域的面积,∩为交集运算符,Dice系数越接近1,Q值越接近0,说明算法分割精度越高。本文算法主要针对序列CT图像进行分割,从LIDC数据库中选取20个CT序列图像进行实验,平均分割精度为96%。用本文所采用的算法对CT图像进行分割时,首先利用改进模糊C均值聚类选取最佳阈值,然后用所得阈值将图像二值化,与传统阈值法相比,算法的精度能得到进一步提高,不会出现过分割现象。另外,Freeman八方向三链码差算法在修补肺实质边缘时具有鲁棒性强的特点,且不受噪声的影响。
3 结束语
针对肺部CT内边界存在噪声以及传统的算法无法有效修补大面积病变肺实质的问题,本文提出了能有效分割病变肺实质方法。首先结合改进模糊C均值算法与八邻域漫水填充算法获得粗分割的肺实质图像;然后采用灰度投影积分方法分离左右肺;最后利用Freeman链码三链码差算法修补肺部缺失边界,进一步提高分割精度。实验结果表明,该方法能有效分割肺实质,且分割精度接近专家手动分割的金标准,为肺癌的放疗、化疗、手动切除等后续工作奠定了坚实的基础。