基于漫水填充算法的肺实质分割方法
摘要:在肺部疾病计算机辅助诊断方法中,肺实质分割是一个重要步骤。本文提出一种综合漫水填充算法、形态学运算和孔填充运算的分割方法,此算法能准确地的分割肺部实质,可有效解决左右肺部不易分离的问题。实验结果表明,该算法对于肺部实质分割富有成效。
关键词:CT图像;漫水填充算法;形态学运算
The Lung Parenchyma Segmentation Bas ヅed on Floodfilling Algorithm
FENG Zong-Xue, DONG Xiao
(School of Physical and Electronics, Shandong Normal University, Jinan 250014 ,China)
Abstract: Lung segmentation is an important step in the method of computer-aided diagnosis of lung diseases.
This paper proposes a segmentation method which combines floodfilling algorithm with morphological operations algorithm and hole filling operations algorithm.This algorithm can segment the lung accurately and can solve the problem that difficult to separate the left and right lungs. Many experiments results show that this algorithm
is very effective for lung segmentation.
Key words: CษT images; floodfilling algorithm; morphological operations algorithm
1 概述
对于肺部疾病,临床上广泛采用CT图像造影序列。分析拍摄的临床CT图像并重建三维血管,医生就能得到肺血管生理信息,其中肺实质分割是肺血管分割的一个基础。目前肺实质分割已成为一个研究热点,近年来产生了许多研究成果。
现有的肺实质分割算法有很多种,如人工划线和边界跟踪[1]、阈值分割[2☿],区域生长,分水岭[3]以及水平集[4]。其中,区域生长法和阈值分割法在图像分割中被广泛应用,但是各自有自己的局限性。文献[5]中指出:阈值分割虽简单快速,但不能有效去除气管、支气管,更不能分割附在肺实质边缘的结节区域,且阈值选择比较困难;区域生长虽然能够分割附在肺实质边缘的结节区域,但是其对种子点及合并生长规则的选取比较敏感[6]。
基于以上分析,本文提出一种综合漫水填充算法、形态学运算和孔填充算法的分割方法,以达到更好的肺部实质分割效果。
2 算法步骤
在分析漫水填充算法、形态学运算和孔填充算法等分割方法的基础上,得出一种综合算法,其流程如图1所示。
首先对CT图像进行预处理操作,包括二值化处理和膨胀处理;然后在背景区域选择种子点并进行颜色填充;最后做后续处理操作,即取反操作、孔洞填充和开运算。
2.1 预处理操作
考虑到CT图像中肺部内部灰度值变化较小,而边缘轮廓处变化剧烈。因此,在肺实质分割阶段,首先对CT图像序列进行二值化操作把图像转换为二值图像,灰度值大于0的设置为前景,灰度值等于0的设置为背景,二值化公式为:
公式(1)中,g(i,j)为CT图像中各点的像素值,p(i,j)为二值图像中的像素值。
考虑到二值图像的边缘粗糙且存在孔洞,所以需要对二值图像进行膨胀操作,通常膨胀1到3个像素,膨胀操作后肺部实质的初步轮廓已经明显,但是其除去肺实质以外的背景颜色不一,随后的处理需要把背景区域的颜色进行统一。
2.2背景填充
在预处理基础之上,进行背景颜色填充操作,本文采用快速漫水填充算法。漫水填充操作涉及三个参数,即初始种子点、目标颜色判定规则和替换颜色[7],具体算法步骤为:
(1)自动标记初始种子点(Xseed,Yseed)。
(2)检索种子点八邻域,判断目标点的颜色。目标点颜色判断规则设定为:与初始种子点RGB各分量之差的绝对值小于某个阈值的像素点被认为与种子点同属于一个区域。即:
公式(2)中,(r,g,b)是种子点的颜色,(R,G,B)是当前点的颜色,Threshold为设定的阈值。
(3)以初始种子点为中心对图像进行颜色填充,即当满足判定条件时,用所选填充颜色替换当前颜色。本文选用八邻域漫水填充。
八邻域漫水填充过程如图2所示,各点和区域如图2所示。从区域上所选种子点(黑色标记点)出发,通过上、下、左、右、左上、左下、右上、右下八个相邻像素点来检索,检索完这一连通区域再更新连通矩形继续检索。
(4)更新连通区域,重复步骤(2)、(3)。
假设,矩形连通区域的左上顶点坐标为(Xmin,Ymax),右下顶点坐标为(Xmax,Ymin),左下顶点坐标为(Xmin,Ymin),右下顶点坐标为(Xmax,Ymin),待检测的下一像素点的坐标为(X,Y)。矩形连通区域ง由此四个顶点坐标来更新。连通区域的更新规则如下: 外接矩形顶点初始化:Xmin=Xmax=Xseed;Ymin=Ymax=Yseed。
外接矩形顶点的更新:Xmin=min{Xmin,X},Xmax=max{Xmax,X},
Ymin=min{Ymin,Y},Ymax=max{Ymax,Y}。
2.3后续处理
背景填充后结果不理想,肺部实质存在孔洞和噪声,需要做后续处理,主要包括取反处理、孔填充和开运算。
取反处理。为了使肺部实质区域用白色表示,在背景填充结果的基础上,首先利用公式(3)做取反处理,即二值图像中像素值为0的点转化为1,像素值为1的点转化为0。
孔填充。为了去除肺部实质内部的孔洞,需对肺部实质进行孔填充操作,算法步骤为:
1) 遍历查找所有轮廓;
2) 获得轮廓面积并把此面积与设定的面积值作比较;
3) 当轮廓面积小于或者等于设定面积值时,用白色替换轮廓内部区域。即当时,
开运算。为了去除肺部实质区域外部的噪声,需要进行开运算操作,即先腐蚀后膨胀。一般来说,开运算能够去除孤立的小点、毛刺和小桥,而总的位置和形状不变。
3 实验结果与分析
3.1实验条件与程序
实验所用PC机的配置为CPU 英特尔 core i7-4790,主频3.60GHZ,内存8G。采用30张(编号1-30)分辨率为512*512、厚度为0.3mm的胸部CT图像进行分割实验。CT图像的格式是DICOM,利用Windows系统处理时,需要根据CT图像的特点将其转换成BMP格式,然后对BMP格式的胸部CT图像进行肺部实质分割,处理后的肺部实质图像序列是BMP格式,三维分辨率是512*512*65。实验程序基于VS2010采用C++语言实现,图像基于OPENCV进行处理。
首先对CT图像进行预处理,包括二值化和膨胀操作。经过多次实验验证,膨胀三个像素时,能够达到较好的分割结果。二值化和膨胀操作核心代码如下:
cvCvtColor(Image1, Image2, CV_BGR2GRAY);
cvDilate( Image2,Image3, NULL,3);
随后进行背景填充,本实验进行四次漫水填充,经分析CT图像并选出的四个种子点坐标分别为(0,0),(0,500),(500,500),(300,500),核心代码如下:
cvFloodFill(Image3, Point(x,y), Scalar(255,255,255),Scalar(0, 0,0), Scalar(10, 10,10),NULL);
此时肺部实质区域和背景区域的区分已经非常明显,除去肺部血管以外的肺部实质区域已被提取出来,考虑到结果不理想,存在孔洞,边缘粗糙,需要做后续处理。后续处理主要包括取反操作、孔洞填充和开运算操作。
取反操作的目的是用白色表示肺部区域。取反操作后图像包含肺部实质血管部分,随后运用孔洞填充操作将其填充为白色,当轮廓面积小于或者等于设定面积值时,用白色替换轮廓内部区域。核心代码如下:
FillInternalContours(Image3,1000);
考虑到结果仍有噪声,需要对图像进行一次开运算操作,即先腐蚀后膨胀,核心代码如下:
cvErode( Image3,img_erode, NULL,1.3);
cvDilate(img_erode,Image4 , NULL,4);
3.2实验结果与分析
选用30张CT序列中编号为9和27的两张图片作为示例进行分析。
图3至图9为编号为9的CT图像的分步骤实验结果,图10为区域生长法实验结果。
对比图17和图18可以看出,区域生长法没有分离开左右肺实质,显然这样的ฑ结果不是所期望的,而本文方法能准确分割开左右肺部实质。
通过实验结果对比可看出,本文算法能够对肺部实质分割达到较为理想的效果,具有可行性和有效性。
4 结论
针对区域生长分割方法的不足,本文提出一种综合漫水填充算法、形态学运算和孔洞填充算法的分割方法,对肺部实质进行分割。实验结果表明,与区域生长法相比,本文算法能够准确地分割出左、右肺部实质,结果轮廓清晰,验证了本文算法的可行性和有效性,为后续肺部血管分割奠定基础。
参考文献:
[1] Hu S,Hoffman E A.Automatic lung segmentation for accurate quantization of volumetric X-ray CT images [C].IEEE Trans.Med.Imaging 2001,20(6):490-498.
[2] 曹蕾,占杰,余晓锷.基于自动阈值的CT图像快速肺实质分割算法[J].计算机工程与应用,2008,44(12):178-181.
[3] 马丽红,张宇,邓建平.基于形态开闭滤波二值标记和纹理特征合并的分水岭算法[J].中国图形图像学报,2003,8(1):78-83.
[4] Lee.J.Seo,J.B,Kim,N.Novel level-set based segmentation method of the lung at HRCT images of
Diffuse interstitial lung disease(DILD),SPIE Medical Imaging 2009:Imageprocessing,2009,10(2):725941.
[5] 贾同,孟f,赵大哲,等.基于CT图像的自动肺实质分割方法.东北大学学报:自然科学版,2008,29(7):965-967.
[6] 陈旭,庄天戈.胸部高分辨率CT片中肺实质的自动分割[J].上海交通大学学报,2002,36(7):946-948.
[7] 陈佳鑫,贾英民.一种基于漫水填充法的实时彩色目标识别方法[J].计算机仿真.2012,29(3):4-9.