张红民,王一博
(重庆理工大学 a.光电信息学院;b.电子信息与自动化学院,重庆 400054)
基于分水岭的分割算法因其具有速度快、精度高的特点,在细胞图像分割领域得到广泛应用。但是分水岭算法存在的过分割问题一直没有得到很好的解决。因此,有效降低过分割问题是目前研究的焦点之一。现有的改进算法主要是在分水岭算法之前通过图像滤波或标记提取进行预处理,或者在分水岭算法之后对过分割区域进行区域合并。文献[1]利用子二维图像中各像素点间的规则空间关系来改进分水岭算法。文献[2]采用多尺度滤波的方法消除局部极小值。文献[3-5]通过一定的合并准则将小区域合并到相邻区域中。文献[6]引入浮点函数图像来代替梯度变换。上述方法不但运算复杂,而且分割结果也不准确。本文在充分研究细胞图像性质的基础上,提出了一种改进的基于分水岭的细胞图像分割算法,有效地去除了图像杂质点和细胞孔洞,并较好地解决了分水岭算法在细胞分割时的过分割和漏分割问题。
Vincent和 Soille[7]最早根据水面浸没地形的过程提出了分水岭算法。该算法把梯度图比作地形曲面,以灰度值表示地形中的海拔高度,局部最小值表示“谷底”,最大值表示“山峰”。水面从“谷底”开始上涨,在浸没地形过程中,由“谷底”形成的“积水盆地”被修筑的“坝”包围,当所有“积水盆地”都修筑“坝”之后,停止浸没过程,这些坝就构成分水岭。因为梯度幅度图像在对象的边缘处有较高的像素值,而在其他地方有较低的像素值,所以分水岭变换通常是作用于梯度图像上的。但实际中由于梯度噪声、细胞孔洞和杂质的影响,在平坦区域内部可能会产生许多局部的“谷底”和“山峰”,形成错误的局部极小值而导致过分割。
图1(a)是一幅血细胞图像,(c)是对梯度图像(b)的分水岭分割结果。血细胞图像被分割成了很多小区域,存在严重的过分割现象。
图1 经典分水岭法分割结果
为解决经典分水岭算法的不足,本文提出了一种基于灰度差的分水岭算法,其主要思想是增加抑制图像噪声和消除细胞孔洞与杂质的图像预处理步骤。算法首先对原图像进行灰度差变换,然后对得到的图像进行区域填充操作,消除细胞内部的孔洞,将形态学边界提取的结果作为分水岭变换的输入图像进行分割,最后得到输出图像。该算法的流程见图2。
图2 算法流程
虽然梯度图像能很好地反映图像的边界,但梯度变换存在的最大缺点就是对噪声非常敏感。这是因为梯度图中噪声可能与边缘一样有较大的梯度值,再加上细胞图像中低对比度变化区域的存在会使得梯度变换产生许多错误的极小值,从而在分水岭分割中造成过分割的现象。所以用一个基于8邻域中不相邻像素灰度差的变换[6]来代替梯度变换。
当如图3所示的3×3的滑动窗口在图像上滑动时,窗口内每小格的值为图像中所对应点的灰度值。该窗中心点像素的灰度值由它在8邻域内两两不相邻像素的灰度差值组合得到,如式(1)所示。经过这样处理后的图像称为灰度差值图。
因为在噪声点处的8邻域各像素点之间的灰度值相差小,使得灰度差值图中该点的值也小;相反在边界点处该点的值就比较大。
图3 3×3窗口
用灰度差值变换代替梯度变换,可以在一定程度上降低噪声点的影响。图4(a)是血细胞图像,(b)为灰度差变换后的图像。可以看出,变换后的图像中噪声明显减少。
图4 灰度差变换结果
由于染色不均匀或光照反射等原因造成采集来的染色血细胞图像存在局部颜色差异,这样的图像会产生很多的孔洞现象。过多的孔洞会严重影响分割的质量,并造成细胞计数和直径计算不准确。为了解决这个问题,本文需要对灰度差变换后的图像进行区域填充处理。首先对图4(b)采用选择最佳阈值[8-9]的方法进行二值化,然后将二值化处理后的图像矩阵的第1行像素灰度值全部赋值为 255,最后再对图像进行区域填充[9-10]。填充的具体方法:
设A表示一个子集的集合,其子集的元素均是区域的8连通边界点。目的是从边界点内的一个点开始,用1填充整个区域。用黑色方格表示值1,白色方格表示值0。所有非边界点(背景)点标记为0。则从将1赋给p点开始,用下列过程将整个区域用1填充:
其中:Ac为A的补集;X0=P;B为对称结构元。如果Xk=Xk-1,算法在迭代的第k步结束。区域填充结果如图5所示。
前面已经介绍过分水岭算法的原理。将最后边界提取的结果作为分水岭算法的输入图像。设A表示区域填充后的图像,B是半径为3的平坦的圆盘型结构元,则集合A的边界β(A)表示为
将β(A)作为分水岭变换的输入,可有效消除图像中的杂质点,得出最后的分割结果,如图6所示。
图5 区域填充结果
图6 分水岭变换结果
为验证算法的分割结果,本文在Matlab7.0中对不同大小的细胞图像进行测试。其中3幅图分别为220×214的血细胞灰度图像、391×245的红细胞灰度图像和276×183的骨髓细胞灰度图像。图7(a)是细胞原图,(b)是经典分水岭算法结果,(c)是本文所提出的方案所得出的分割结果。从图7~9所示的分割结果可以看出,绝大多数细胞被正确地分割出来,边缘连续、准确,噪声、杂质和细胞孔洞没有引入到分割结果中。
图7 220×214血细胞灰度图像
图8 391×245红细胞灰度图像
图9 276×183红细胞灰度图像
本文提出的细胞图像分割算法主要是在分水岭变换之前对图像进行预处理,目的是为了降低分水岭过分割的问题。实验结果表明,该算法具有稳定性强、准确性高等特点。值得一提的是,在实际应用中,对于重叠粘连的细胞和表面灰度不均衡的细胞,该算法的分割结果不太理想,故此算法还有待改进。
[1]邓子建,李弼程.基于直观分水岭定义的图像分割方法[J].计算机工程与应用,2005,26(5):43 -47.
[2]徐国堡,尹怡欣,王骥,等.基于融合自适应形态滤波的分水岭分割方法[J].计算机应用与研究,2009,26(8):3143-3145.
[3]边肇祺,张学工.模式识别[M].北京:清华大学出版社,2000.
[4]黄席樾,张著洪,何传江.现代智能算法两类及应用[M].北京:科学出版社,2005.
[5]王蜀,李永宁,陈楷民,等.基于数学形态学的医学图像分割[J].计算机应用,2005,25(10):2381 -2386.
[6]徐宇.形态分水岭变换在木材细胞图像分割中的应用[D].哈尔滨:东北林业大学,2008.
[7]Vincent L,Soille P.Watersheds in digital spaces:An effcient algorithm based on immersion simulations[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1991,13(6):583 -598.
[8]郁晶源,宋凯.最佳阈值分割算法在肺癌细胞识别系统中的应用[J].沈阳理工大学学报,2005,24(4):33-35.
[9]纪延俊,杜玉杰.粘连气泡图像的分割[J].滨州学院学报,2007,23(6):30 -33.
[10]张汉灵.MATLAB在图像处理中的应用[M].北京:清华大学版社,2008.