眼底视网膜血管增强方法(三)形态学操作

眼底视网膜血管增强方法(三)形态学操作

在图像处理中,我们经常把数学形态学作为工具用于图像的相关属性提取,或者对图像进行预处理和后处理。形态学的基本操有腐蚀、膨胀、开操作、闭操作、顶帽等。

形态学的基本操作

由于我们是在灰度图像上进行操作的,所以只讨论灰度级形态学操作。设f(x,y)代表输入图像,b(x,y)代表结构元素,则灰度级膨胀定义为

(fb)(s,t)=max{f(sx,ty)+b(s,t)|(sx,ty)Df;(s,t)Db}

式中, Df 表示函数f的定义域, Db 表示函数b的定义域。如果我们把b看作一个卷积核,则上式相当于是求核b覆盖下的f的最大值,即膨胀是求最大值操作。事实上,上式与卷积操作也很相似,只不过是把卷积求和换成了求最大值,把元素对应相乘换成了对应相加。
形态学腐蚀是膨胀的相反操作,即腐蚀是求局部最小值。灰度级形态学腐蚀定义为
(fb)(s,t)=min{f(sx,ty)+b(s,t)|(sx,ty)Df;(s,t)Db}
了解了膨胀腐蚀后,我们很容易理解开操作和闭操作了,它们定义如下.
开操作:
fb=(fb)b
闭操作:
fb=(fb)b
即开操作是把图像对模板先腐蚀再膨胀,闭操作是先膨胀在腐蚀。开操作常用于去除细小目标点(高亮度),闭操作常用于去除小背景点(低亮度)。
顶帽操作:
h=f(fb)
顶帽操作对阴影处的细节有很好的增强作用。前面所提的五种形态学基本操作效果如图1所示。
眼底视网膜血管增强方法(三)形态学操作_第1张图片 眼底视网膜血管增强方法(三)形态学操作_第2张图片 眼底视网膜血管增强方法(三)形态学操作_第3张图片
眼底视网膜血管增强方法(三)形态学操作_第4张图片 眼底视网膜血管增强方法(三)形态学操作_第5张图片 眼底视网膜血管增强方法(三)形态学操作_第6张图片
图1. 第一排从左到右分别为:原图像 、膨胀操作、腐蚀操作;第二排从左到右分别为:开操作、 闭操作、顶帽操作

形态学操作对眼底图像的增强

形态学操作是提取图像的边缘和骨骼线的重要工具,因此形态学操作也被广泛地用在眼底图像中来。Zana等提出了基于数学形态学和曲率估计的算法来评估血管。Yang 等提出一种基于数学形态学与模糊聚类的视网膜血管自动分割算法。基于前人的研究基础,我们用了两种不同的形态学操作用眼底血管特征提取。

基于形态学的背景差操作

眼底图像大概可以分为血管、OD区,黄斑区和眼底组织四大部分,血管是低亮度的线性放射结构,黄斑区是低亮度圆形块状,OD区是高亮的圆形块状,眼底组织是亮度中等且变化均匀大背景区域。根据眼底图像的构成及它们的形态,我们可以用合适的形态结构来抹去血管,只剩下背景区域,然后用背景图减去原图像,则可以得到血管图。我们选取一个直径大于血管,小于OD区和黄斑区的圆盘结构,先对血管进行多次的膨胀操作,去除血管部分,紧接着对膨胀后的图进行同样多次的腐蚀操作,还原其背景部分,从而得到眼底图像的背景图。然后把背景图减去原图,得到增强后的血管图如图 2左所示。

形态学顶帽操作

形态学顶帽操作是一种典型的图像纹理增强方法。结合文献[11]和]12]给出的做法,我们选取一种多尺度的线性结构单元来进行顶帽操作。线性单元的长度从1到20个以3个像素为步长均匀变化,共7个尺度。考虑到血管的无规律增长,线结构要相应地进行方向的变化。所以对每个尺度,我们选取12个不同的方向,每个方向间隔15度的单元来进行顶帽操作,然后把这12个方向中的最大响应值作为输出。形态学顶帽操作的结果如图 2右所示。
眼底视网膜血管增强方法(三)形态学操作_第7张图片 眼底视网膜血管增强方法(三)形态学操作_第8张图片
图2 形态学增强效果图

原程序

%形态学背景差
backgroundSub = morpho_sub(img);  
backgroundSub = double(backgroundSub);

%形态学顶帽操作
struc = [1:3:20];
[Mor,~] = morpho_tophat(img,struc);
Mor(mask==0) = 0;
Mor = normalize(Mor);

完整程序包见:http://download.csdn.net/detail/u013288466/9861586

你可能感兴趣的:(computer,vision,医学图像处理,视网膜血管增强与分割)