基于PCNN的视网膜血管分割系统设计与实现

时间:2022-10-21 11:37:29

基于PCNN的视网膜血管分割系统设计与实现

摘 要:在对视网膜眼底图像中的血管进行预处理并运用脉冲耦合神经网络(Pulse Coupled Neural Network,PCNN)算法迭代原理进行分割的基础上,利用MATLAB 的图形用户界面开发环境(GUIDE),通过对各控件的布局设计及其回调函数的编写,实现了视网膜血管分割系统。系统具有界面友好、操作简单等特点,为医学图像研究提供了一种有效的视网膜血管分割方法,也为医学图像处理提供了一个操作方便的实验平台。

P键词关键词:视网膜;PCNN;血管分割;MATLAB;GUIDE

DOIDOI:10.11907/rjdk.161883

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2016)008-0068-03

0 引言

眼睛是人体接受外界信息最主要的器官,约75%左右的信息来源于视觉信息。因此,眼睛健康与否对人的学习、生活和工作的影响非常大。而眼底则是这个器官的重要组成部分,主要包括视网膜、脉络膜、黄斑和视盘等。眼底视网膜中的血管是人体内唯一可以非创伤的方式直接观察到的较深层微血管,其颜色、亮度、位置分布、形状以及曲率等变化可以直接反映出疾病对血管网络形态结构的影响,是心脑血管疾病对血管微循环检查的重要部位。因此,视网膜图像中血管网络的检测与分割对心脑血管疾病的诊断及治疗具有重要意义[1]。

由于该方法计算公式复杂,涉及参数较多,且目前主要使用编写脚本程序的方式进行视网膜眼底图像中的血管分割,各个参数的调整都要在脚本程序中进行,非常复杂,不便于可视化地观察实验结果变化。因此,设计开发一款界面友好、操作简单的视网膜血管分割系统是非常必要的。

MATLAB是一款由Mathworks公司推出的数学软件,它在数值分析、矩阵运算、数值拟合以及图形绘制等方面均有极其强大的功能,已被广泛应用于数字图像处理、信号处理和系统仿真等各个领域。同时,MATLAB 软件具有界面友好、操作简单的图形可视化界面设计工具,其集成图形用户界面GUIDE(Graphical User Interface Development Environment)包含了窗口菜单、对话框、按钮和文本等各种控件[2]。用户通过对控件进行布局,编写控件的回调函数即可实现GUI 与用户之间的交互,操作十分方便。

本系统在对视网膜眼底图像中的血管进行预处理并运用脉冲耦合神经网络(Pulse Coupled Neural Network,PCNN)迭代原理分割的基础上,利用MATLAB 的图形用户界面开发环境(GUIDE)实现了视网膜血管分割系统。该系统为医学图像研究提供了一种有效的视网膜血管分割方法,也为医学图像处理提供了一个操作方便的实验平台。

1 研究方法

首先是对视网膜眼底图像中的血管进行预处理,然后利用PCNN方法对视网膜图像中的血管进行分割。

1.1 视网膜血管图像预处理

所处理的视网膜图像为眼底视网膜RGB彩色图像,通过将RGB 彩色图像分解成红、绿、蓝三通道单色图像可以发现,绿色通道的视网膜图像中血管和背景对比度最高, 而红、蓝色通道的单色图像中噪声较多、对比度较低, 因此采用绿色通道的视网膜图像进行处理。

由于视网膜眼底图像是由专门的医学设备采集的,血管周围区域难免会对后续处理产生干扰,因此需要对视网膜图像进行有效区域的选取。将RGB图像进行二值化处理,使其归一化到[0,1]之间,再依次应用形态学中的开运算、闭运算和腐蚀操作,生成二值掩膜图像。

由于血管直径大小不一、背景干扰以及成像时光照不均等因素影响,使得血管与背景的对比度较低。为获得理想的分割效果,要对眼底图像进行预处理,以增强血管和背景的对比度。本系统主要采用对比度受限制的自适应直方图均衡化(CLAHE)[3]与二维高斯匹配滤波[4]方法对视网膜血管进行对比度的增强。

直方图均衡化(HE)的基本思想是通过图像的灰度分布直方图确定一条映射曲线,用来对图像进行灰度变换,以达到提高图像对比度的目的。然而HE是对图像全局进行调整的方法,不能有效提高局部对比度。为了提高图像的局部对比度,有研究者提出自适应直方图均衡化(AHE)方法,将图像分成若干子块,对子块进行HE处理。但是AHE 对局部对比度提高过大,将导致图像失真。为了解决这个问题,必须对局部对比度进行限制,这便是CLAHE方法。CLAHE处理后的图像既能体现不同位置灰度分布之间的差异,又能使全局灰度较为协调。

二维高斯匹配滤波的原理主要是根据血管曲率较小且宽度渐进改变这一特点,将血管近似分段为等宽度的线段,然后用高斯曲线模拟其横截面的灰度轮廓。由于血管方向具有任意性,因此需要旋转高斯曲线来匹配不同方向的血管。每30°旋转一次,得到从0°~180°的6个匹配滤波器,再分别与经过CLAHE处理后的图像进行卷积,选择其中最大的卷积值作为增强图像的像素值。

最后,将经过CLAHE处理之后的图像减去经过CLAHE、二维高斯匹配滤波后的图像,即可得到最终的预处理结果。

1.2 基于PCNN的视网膜血管分割

脉冲耦合神经网络 (PCNN ,Pulse Coupled Neutral Network)[5]是20世纪90年代形成和发展的与传统人工神经网络有着根本不同的新型神经网络,其模型直接来源于高级哺乳动物的视觉神经系统,具有现实的生物学依据,在图像处理与分析及计算机视觉领域中有着广泛应用。它不仅能够克服微小变化造成的影响,而且能够较完整地保留图像的区域信息。因此,使用PCNN进行视网膜血管图像分割具有一定优势。

本系统采用PCNN简化模型对视网膜图像血管自动分割,该模型不仅保持了原始模型的重要特性,而且减少了部分参数。用迭代公式可以描述为:

式中,Sij是外部刺激,即点(i,j)对应像素的灰度值,Fij是神经元的输入项,Lij、Uij、Yij、Eij分别是神经元的耦合连接输入、内部活动项、脉冲输出和动态阈值。VL为连接输入域的放大系数,β为神经元之间的连接强度系数,VE和αE分别为动态阈值的放大系数和衰减常数因子,W为连接加权系数矩阵。PCNN应用于眼底图像处理时,其神经元数目与图像像素数目一致,各神元与像素一一对应,像素的灰度值作为对应神经元的输入Sij。当连接加权系数矩阵W所在邻域内有相似灰度值像素时,若其中某个神经元点火产生脉冲输出,会引起邻域内相近灰度值像素对应的神经元点火,产生脉冲序列输出,这些输出脉冲序列构成的二值图像Y即为输出的分割图像。

2 系统设计思路及方法

根据上述分割过程,将系统设计成两大模块,分别对应于两个界面,主界面为视网膜图像预处理模块,子界面为视网膜血管分割模块。通过使用MATLAB GUIDE中的控件进行布局和编写相应的回调函数来实现各模块功能。

利用MATLAB GUI实现视网膜血管分割系统的过程可以分为GUI 图形界面布局和GUI 程序实现两部分[6]。对于界面布局,首先要考虑窗口大小、控件位置以及界面所要实现的功能及各控件需要完成的任务。完成控件的布局之后,接着应对控件属性进行设置,通过在相应的控件上双击鼠标左键,打开属性查看器,设置该控件属性。最后需要对各个控件进行回调函数的编写,这是界面设计的关键一步,直接影响界面各个功能的实现。

3 系统功能实现

3.1 视网膜图像预处理模块

视网膜图像预处理模块包括选择图片、选择RGB通道、CLAHE增强处理、二维高斯匹配滤波处理以及最终预处理结果5个子模块,如图1所示。

具体操作如下:界面初始化后自动加载一幅默认图片,也可以由用户选择其它图片;单击“选择图片”按钮,之后会弹出一个对话框,选择要载入的图片,可以看到图片显示在界面的左上角,文件名显示在图片正下方;然后选择彩色通道,默认为绿色通道,选择的通道图像显示在右边区域左上角。如果勾选 “生成掩膜”选项,则后面的运行结果均会显示出单击“生成掩膜”之后的图像,默认状态为未勾选;接下来需要进行CLAHE处理,以增强图像对比度。在这里,主要是对adapthisteq函数中的参数进行设置;最后单击“运行”按钮,结果显示在右边区域的右上角。在进行CLAHE处理之后,需要进行二维高斯匹配滤波处理,主要是对滤波核个数、血管半径及血管段长度进行设置,以进一步增强血管与背景的对比度;然后单击“运行”按钮,结果显示在右边区域的左下角;单击“最终预处理结果”按钮,结果显示在右边区域的右下角。

3.2 视网膜血管分割模块

视网膜血管图像分割模块主要是根据PCNN算法迭代原理,调节PCNN各个参数,对视网膜血管图像进行分割,如图2所示。

具体操作如下:单击主界面中的“PCNN分割”按钮,即可进入视网膜血管分割模块的界面;接着选择所需PCNN模型和核,并设置核的半径大小。若选择“原始模型”,则需要设置PCNN的6个参数,若选择“改进模型”,则只需设置PCNN的4个参数;之后设置迭代次数和beta的值,单击“运行”按钮,在弹出的对话框中,选择一幅迭代图片,将自动生成分割结果;对于分割后的结果,单击“保存”按钮,可以保存图片;最后单击“返回”按钮,可以返回主界面。

4 结语

基于MATLAB 软件在图形绘制、数值运算及可视化界面开发等方面的优势,在对视网膜眼底图像中的血管预处理并运用PCNN算法迭代原理进行分割的基础上,通过MATLAB GUI 设计完成了视网膜血管分割系统,可以实现视网膜血管图像的增强处理,进而利用脉冲耦合神经网络方法对视网膜血管图像进行分割。本系统提供了一种有效的视网膜血管分割方法,在医学图像研究方面具有一定参考价值。同时,系统具有界面友好、操作简单等特点,为医学图像处理提供了一个操作方便的实验平台。

参考文献:

[1] 姚畅,陈后金,李居朋. 基于过渡区提取的视网膜血管分割方法[J].电子学报,2008,36(5):974-978.

[2] 姚秀芳,崔松菲. 基于MATLAB GUIDE的程序设计[J]. 电脑知识与技术,2009,27(5):7767-7768.

[3] 陈萌梦,熊兴良,张琰,等. 1种视网膜眼底图像增强的新方法[J]. 重庆医科大学学报,2014,39(8):1087-1090.

[4] 姚畅,陈后金. 一种新的视网膜血管网络自动分割方法[J].光电子・激光,2009,20(2):274-278.

[5] 马义德,绽琨,王兆滨,等.脉冲耦合神经网络图像处理 [M].第2版.北京:高等教育出版社,2008.

[6] 罗华飞. MATLAB GUI设计学习手记[M].北京:北京航空航天大学出版社,2011.

上一篇:探究现阶段企业会计制度改革 下一篇:基于FPGA的多通道双频数字接收机设计