发明内容
本发明的目的是克服现有技术的上述不足,提出了一种自适应高斯差分算法对眼底图像血管进行分割的方法,该方法对图像亮度和对比度不敏感,克服了传统方法无法正确分割病变眼底图像中血管的缺点。实现本发明目的技术方案,包括下列步骤:
步骤1-1:输入一幅彩色眼底图像I(x,y);
步骤1-2:提取彩色眼底图像的绿色通道图像G(x,y);
步骤1-3:采用对比度受限的自适应直方图均衡化(CLAHE)增强图像的对比度,采用滑动窗口进行局部直方图均衡化;
步骤1-4:采用各向异性耦合扩散方程对眼底图像进行滤波,对初始图像进行变形,控制扩散速度和扩散方向,在垂直于图像边缘的方向禁止扩散,仅在沿着图像边缘的方向进行滤波,从而消除噪声并且保持血管信息;
步骤1-5:采用基于自适应高斯差分的算法在从0°到180°,以15°为步长的12个方向上增强眼底血管,分别得到眼底血管增强图;
步骤1-6:采用Otsu阈值分割算法进行二值化,得到血管分割的二值图像Bi(x,y),其中,i=1,2,…,12,并将12个方向上的二值图像进行叠加得到完整血管分割图像B(x,y);
步骤1-7:根据眼底图像预处理得到图像的直方图的双峰性,以直方图第二个峰值处的灰度值的20%为阈值,分割提取眼底图像中亮区域M(x,y);
步骤1-8:从血管分割的二值图像B(x,y)中减去M(x,y),减小眼底图像中亮病变区域以及视盘对于血管分割的影响。
进一步讲,其中的自适应高斯差分算法的步骤包括:
步骤2-1:构造高斯尺度空间。首先构造高斯核是一个W*W的矩阵,其中σ为尺度因子且σi=kσi-1(k>1,i=1,2,3…),由σi体现高斯尺度空间中每层尺度的差异,尺度空间之间的尺度因子的递增参数k根据高斯差分算法与拉普拉斯算子的相似性取值为1.6。然后采用构造的高斯核与预处理图像P(x,y)进行卷积,即L(x,y,σi)=G(x,y,σi)*P(x,y),Li(x,y,σi)即为高斯尺度空间中每层的高斯平滑图像。
步骤2-2:利用高斯尺度空间进行以尺度σi为因子的高斯差分运算
其中,M×N为图像大小。
步骤2-3:再对高斯空间中每两层相减得到的高斯差分图像Di采用加权取平均运算获取采取高斯差分算法分割的血管增强图像,计算过程如下:
其中,n为高斯尺度空间中图像总层数,ωi为各层目标图像所占权重。当Di≤δ时,尺度空间创建停止,高斯差分计算也结束,从而确定n的大小,其中δ为给定误差阈值。n的选取是自适应的,因其是根据Di的大小而自适应地判断高斯尺度空间创建是否停止,ωi的定义如下:
步骤2-4:对高斯差分加权平均得到的结果D(x,y)采用Otsu阈值分割算法进行二值化,得到血管分割的二值图像。
步骤2-5:在0°到180°内,以15°为步长,分别在12个方向上对预处理图像进行自适应的高斯差分算法,并将12个结果叠加在一起,得到最终的血管分割结果B(x,y)。
与现有技术相比,本发明的有益效果是:
(1)采用基于高斯尺度空间的高斯核算子的自适应高斯差分算法对预处理后的眼底图像做血管增强,设计了高斯核,可以旋转任意不同的角度,对相邻的以一定比例增大的尺度因子作用后的高斯滤波结果进行差分,尺度因子增大的过程停止采用自适应的方法,即相邻两个高斯滤波结果的差值小于给定的阈值,然后对各个差分结果加权求和,权值依据高斯差分结果制定。
(2)由于彩色眼底图像预处理得到图像的直方图呈双峰状,根据这一个特点,选取第二个明显峰值,即灰度值较大处的峰值20%处对应的灰度值作为阈值分割眼底图像的亮区域,可以抑制眼底图像中亮病变和视盘对血管分割的影响。
具体实施方式
本发明的流程图如图1所示,首先提取眼底图像的绿色通道,用对比度受限的自适应直方图均衡化提高图像的对比度;采用各向异性耦合扩散方程进行滤波来提高血管的清晰度;然后采用基于自适应的高斯差分算法对眼底图像进行血管分割;并将高斯差分结果的血管增强图二值化,去掉亮区域对血管分割结果的影响;最后叠加12个方向的分割结果得到最终结果,保证每个方向上的血管都被检测到。下面结合附图,对本发明技术方案的具体实施过程加以说明。
1.提取眼底图像的绿色通道G(x,y);
输入如图2(a)所示的彩色眼底图像,提取该眼底图像的绿色通道,处理后的图像如图2(b)所示。
2.用对比度受限的自适应直方图均衡化(CLAHE)增强图像的对比度;
用CLAHE对图2(b)进行处理结果如图2(c)所示。CLAHE采用滑动窗口,分别统计窗口内和窗口外的归一化直方图,进而将局部直方图定义为:
h(s)=βhw(s)+(1-β)hb(s) (1)其中,s表示灰度值,hw(s)表示窗口内的归一化直方图,hb(s)表示窗口外的归一化直方图,0≤β≤1。调整β的大小,就可以调整窗口外部环境对窗口内变换的影响程度。在CLAHE处理过程中,对窗口的局部直方图进行均衡化,以实现对窗口中心像素的灰度级的增强。窗口从左到右、从上到下移动,最终完成对整幅图像对比度的增强。
3.采用各向异性耦合扩散方程对眼底图像进行滤波;
用各向异性耦合扩散方程对图2(c)进行滤波处理,结果如图2(d)所示。各向异性耦合扩散方程把原始图像作为扩散方程的初始条件,利用耦合扩散方程对初始图像进行变形得到滤波结果,在此过程中方程的扩散是梯度方向受限的,因此该模型是各向异性的耦合扩散模型。该扩散模型如下:
其中,控制扩散方向,仅在沿着图像的边缘方向进行滤波,而在垂直于图像边缘的方向禁止扩散。控制方程的扩散速率,其中是v的梯度,c是一个平滑的非增函数,保证方程在较大的地方即图像的边缘处具有一个较小的扩散速度。保真因子保证滤波后的图像不会偏离原始数据太大,在图像的边缘处其数值很大,而在图像内部数值则很小。利用该模型对眼底图像进行处理,既能有效滤除噪声又能很好地保持血管的边缘信息。
至此,得到彩色眼底图像的预处理图像结果P(x,y)。
4.用自适应的高斯差分算法对预处理眼底图像进行血管分割;
眼底图像中血管有不同的方向,因此分别提取不同方向上的血管可以保证每个方向上血管的完整度,在0°到180°内,以15°作为步长,基本可以覆盖眼底血管的所有方向,本发明采用了12个不同方向分别对眼底图像进行自适应高斯差分的运算,在每个方向上将0度的高斯核算子旋转相应的角度得到每个方向不同的高斯核算子,使用该高斯核算子进行高斯差分运算,最终对12各方向上的高斯差分结果进行融合叠加。
二维高斯函数的定义如式(3)所示,其函数值在归一化后可作为一个给定模板的权值。本发明选取二维高斯函数通过创建高斯尺度空间来完成高斯差分计算。设经预处理后的输入对该输入用式(4)创建一个高斯尺度空间:
Li(x,y,σi)=G(x,y,σi)*I(x,y) (4)其中,σi=kσi-1(k>1,i=1,2,3…)表示尺度因子,*表示卷积运算,高斯核G(x,y,σ)是一个W*W的矩阵,尺度空间之间的尺度因子的递增参数k根据高斯差分算法与拉普拉斯算子的相关性取值为1.6。输入图像的高斯差分结果Di由高斯尺度空间中相邻两层图像的平均差值得到,计算如下:
其中,M×N为图像大小。本发明根据Di的变化情况自适应地判断高斯尺度空间创建是否停止,即n的选取是自适应的。当Di≤δ时,尺度空间创建停止,从而高斯差分计算也结束,其中δ为给定误差阈值。本发明对各层得到的高斯差分图像采用加权平均方式来获取最终血管分割图像,计算过程如下:
其中,ωi为各层目标图像所占权重,n为高斯尺度空间中图像总层数。由于随着尺度因子σi不断增大,提取出的血管像素也更加纯净,则它所占权重也将越大,为此本发明采用下式计算各层目标图像的权值:
图3为采用自适应的高斯差分算法分割得到的眼底血管增强灰度图像。
由高斯差分算法分割得到的血管增强图像D(x,y)基本上已经不再受眼底复杂背景的干扰,此时只需要采用全局阈值分割即可完成阈值分割。记分割图像D(x,y)灰度级为L(通常L=256),其中灰度值为i的像素个数,用ni表示;总的像素个数用n表示;用pi表示灰度图像中灰度值i的像素点出现的概率,则pi=ni/n,其中将D(x,y)的像素按其灰度值根据阈值t分成背景C0和前景C1两类,强调谷底Otsu阈值分割算法的目标函数O(t)为:
其中, 最佳阈值t*通过下式获得:
依次对眼底图做12个方向上的高斯差分运算并进行阈值分割,得到血管分割结果Bi(x,y),(i=0,1,2,…,11)如图4所示,最终对每个方向的结果做或运算进行叠加融合得到最终分割结果B(x,y),如图5所示。
5.眼底图像中亮区域的分割提取。
为了防止大块亮区域对血管分割结果的干扰,比如视盘或亮病变区域可能会被分割出来成为假血管,因此对预处理图像进行亮区域的提取,如图6所示,根据彩色眼底图的双峰性,取第二个较明显波峰处对应灰度值的20%,作为阈值分割眼底图像中的亮区域,分割结果如图7所示,视盘和眼底图像的亮病变被分割出来。
本发明效果可以通过图8得到证明。图8展示了一幅彩色眼底图的血管分割过程,图8(b)为自适应高斯差分对血管的增强结果,图8(c)为图8(b)的二值化图像,图8(d)为图8(c)减去亮区域对血管分割结果影响之后的最终血管分割结果。由结果比较可以看出,本发明对病变眼底图像也可以精确地分割血管。
为了进一步展示本发明的实用性,图9(a)展示了一幅拍摄质量较低的眼底图像,图9(b)为本发明的血管分割结果,图9(c)和(d)第一位专家和第二位专家标识的血管分割图。由结果比较可以看出,本发明对拍摄质量较低的、对比度较低的眼底图像也可以精确地分割血管。