APP下载

改进的自适应中值滤波算法①

2018-10-24黄文笔战荫伟陈家益徐秋燕

计算机系统应用 2018年10期
关键词:中值灰度滤波

黄文笔, 战荫伟, 陈家益, 徐秋燕

1(广东医科大学 教育技术与信息中心, 东莞 523808)

2(广东工业大学 计算机学院, 广州 510006)

3(广东医科大学 信息工程学院, 湛江 524023)

4(湛江中心人民医院 外科ICU, 湛江 524045)

图像在成像、数字化和传输过程中, 常因外界噪声干扰而导致图像质量下降, 因此要进行图像滤波. 图像滤波就是滤除图像中的噪声, 保留原图像的信号点,减少噪声对图像的影响, 提高图像的信噪比[1,2]. 噪声与图像的边缘和细节可能有很大的相似性, 在滤除噪声的同时, 有可能会把边缘和细节的信号点也当做噪声给滤除掉[3]. 图像滤波的目标, 是滤除噪声的同时, 保持图像的边缘和细节[4]. 图像滤波方法总体上分为两类,线性滤波和非线性滤波. 线性滤波具有低通特性, 容易模糊图像的边缘和细节, 非线性滤波的典型代表是中值滤波[5,6], 自Tukey在20世纪70年代提出中值滤波,中值滤波被广泛应用于滤除图像的脉冲噪声[7,8].

1 自适应中值滤波算法

自适应中值滤波算法(Adaptive Median Filtering Algorithm, AMF)使用一个邻域区域作为滤波窗口, 在滤波过程中会根据一定的设定条件改变滤波窗口的大小. 另外, 自适应中值滤波算法主要通过判断当前滤波窗口的中心像素点的性质来决定滤波的输出:当判断窗口中心的像素是脉冲噪声时, 将中心像素用滤波窗口中的像素排序后的中值代替;否则不改变当前的像素值, 直接输出[9,10].

自适应中值滤波算法分为两步进行:噪声检测和噪声滤除, 基本步骤[11]如下:

Wij为正被处理的、中心在(i,j)处的滤波窗口,W0为默认的初始窗口大小,Wmax为允许的最大窗口大小.fij为(i,j)处的灰度值,fmin为Wij中的最小灰度值,fmax为Wij中的最大灰度值,fmed为Wij中的灰度中值.自适应中值滤波算法工作在两个层面, 表示为LevelA和LevelB:

LevelA:如果fmin

LevelB:如果fmin

在图像的噪声密度不大时, 自适应中值滤波算法可以取得较好的图像滤波效果, 同时可以较好地保持图像的边缘和细节. 但是, 当滤波窗口内的噪声点个数大于或等于窗口元素个数的一半时, 自适应中值滤波算法的滤波效果递减[12], 滤波后的图像出现雪花状的噪声, 同时在保持图像边缘和细节方面的能力大大下降[13], 如图 1所示.

赵高长等人[14]对自适应中值滤波算法进行了改进,在噪声检测上引进阀值, 在噪声滤波上结合了均值思想, 并且采用了加权方法得出输出的中值. 但是阀值的大小难以确定, 需要反复尝试, 额外的工作量大, 同时噪声滤波采用加权而输出中值, 其思想偏向线性滤波,在一定程度上带入了线性滤波的弊端, 即模糊了图像的边缘和细节部分. 张旭明等人[15]提出一种根据噪声干扰程度自适应地调整滤波窗口的大小的方法, 同时兼顾滤除噪声和保持图像边缘和细节的性能, 但是噪声干扰程度的判断区间不容易确定.

根据中值滤波算法存在的局限性, 本文提出了改进的自适应中值滤波算法(Improved Adaptive Median Filtering Algorithm, IAMF).

2 改进的自适应中值滤波算法

改进的自适应中值滤波算法先进行噪声检测, 再进行噪声滤除. 算法的所有步骤按照处理方案的优先权从高到低进行部署, 如果当前条件满足, 则执行当前的处理, 结束当前像素的滤波, 否则退而求其次, 进入到下一步的处理.

改进的自适应中值滤波算法先检测当前像素是否噪声, 若非噪声则直接输出当前像素, 不用滤波. 如果当前像素是噪声, 则检测当前滤波窗口的中值是否噪声, 若非噪声则输出中值. 如果当前滤波窗口的中值是噪声, 说明当前滤波窗口的噪声密度比较大, 则增大当前滤波窗口继续进行滤波. 如果增大窗口到允许的最大尺寸, 还不能成功滤波, 说明当前滤波窗口的噪声密度非常的大, 则求最大窗口中除了所有的噪声点(即灰度极值)外的均值, 均值取代当前像素输出. 如果最大窗口中除了所有的噪声点之外, 已经没有像素点了, 则做最坏的打算, 折中取值, 取一个极小灰度像素和一个极大灰度像素的灰度均值取代当前像素.

图1 两种算法对标准图像Lenna的滤波效果比较

改进的自适应中值滤波算法的具体步骤如下:

Wij为正被处理的、中心在(i,j)处的滤波窗口,W0为默认的初始窗口大小,Wmax为允许的最大窗口大小.fij为(i,j)处的灰度值,fmin为Wij中的极小灰度值,fmax为Wij中的极大灰度值,fmed为Wij中的灰度中值.

① 如果fmin

② 如果fmin

③ 如果Wij+2≤Wmax, 增大窗口:Wij=Wij+2, 转①,否则转④;

④ 输出最大窗口中除了所有的极小灰度像素和极大灰度像素之外的灰度均值favg(k为极值灰度像素的数目):

如果favg不存在, 即Wij*Wij=k, 则转⑤;

⑤ 输出favg=(fmin+fmax)/2.

相对于标准的自适应中值滤波算法, 改进的自适应中值滤波算法作了以下的改进:

(1) 改进的自适应中值滤波算法逻辑顺序清晰, 降低了算法的复杂度. 另外, 标准的自适应中值滤波算法是先检测滤波窗口的中值是否噪声, 若是则直接增大窗口, 若不是再判断当前像素是否噪声, 再决定输出当前像素, 还是中值. 在图像的噪声密度比较大的情况下,如果当前像素不是噪声, 而中值是噪声, 就会有可能用增大窗口后的中值取代当前像素, 这样的处理不合理,会模糊图像的边缘和细节. 改进的自适应中值滤波算法克服了这个缺点.

(2) 在图像的噪声密度非常大的情况下, 标准的自适应中值滤波算法在增大滤波窗口到允许的最大尺寸之后, 如果还不能成功滤波, 即中值还是噪声, 直接用中值取代当前像素. 这样的处理是用噪声点取代当前像素. 而改进的自适应中值滤波算法不同, 当增大滤波窗口到允许的最大后, 如果还不能成功滤波, 则退而求其次, 用当前最大窗口中剔除所有极小灰度和极大灰度像素后的均值取代当前像素. 如果当前的最大窗口剔除所有的极值灰度像素后已没有像素, 则折中取值,用一个极小灰度像素和一个极大灰度像素的灰度均值取代当前像素.

3 仿真实验与数据分析

根据本文提出的改进的自适应中值滤波算法, 运用计算机软件Matlab 2013b进行仿真实验. 将本文所提的算法与标准的自适应中值滤波算法, 同时应用于被加了不同密度脉冲噪声的标准图像Lenna以及医学图像X_ray, 以验证本文算法的优越性. 从主观视觉和客观数据两方面, 对算法的滤波性能进行比较评价. 对于客观数据的比较, 采用峰值信噪比(PSNR)作为客观评价的标准.

PSNR定义为:

其中,m,n为图像的大小,f(i,j)为原图像(i,j)处像素的灰度,g(i,j)为滤波图像(i,j)处像素的灰度.

3.1 算法对标准图像的滤波结果的比较

对512*512、256级灰度的标准图像Lenna, 添加不同密度的脉冲噪声, 同时运用两种算法进行图像滤波. 从主观视觉和客观数据两方面, 对两种算法的滤波效果进行统计和比较分析.

(1) 主观视觉的比较

两种算法同时对不同密度的标准噪声图像进行滤波的效果图如图 1所示. 当噪声密度比较小时, 比如0.2或0.5, 两种算法的滤波效果几乎没有差别, 如(e)和(h), (f)和(i), 并且所有滤波后的图像与原图几乎是一样的. 当噪声密度比较大时, 比如0.8, 两种算法的滤波效果差别很大. 噪声密度为0.8的图像已经看不出任何图像信号了, 用标准的自适应中值滤波算法进行滤波后, 原图像的大部分像素信号得以恢复, 但是出现一些失真, 并且出现了雪花状的斑点, 而用改进的自适应中值滤波算法进行滤波后, 除了一些小的失真外, 绝大部分的图像像素信号得以恢复. 通过滤波效果的比较, 显而易见, 在噪声密度较大时, 相对标准的自适应中值滤波算法, 本文提出的改进的自适应中值滤波算法的滤波效果更好.

(2) 客观数据的比较

两种算法同时对不同密度的标准噪声图像进行滤波的PSNR如图 2所示. 对照图 1, 对3种不同密度的噪声图像进行滤波后的具体PSNR数值如表 1所示.对两种算法进行图像滤波后的PSNR进行统计和比较分析, 显而易见, 当噪声密度比较小时, 比如0.2或0.5,改进的自适应中值滤波算法与标准的自适应中值滤波算法的PSNR差别很小, 前者比后者略微大一点, 但不明显. 当噪声密度比较大时, 比如0.8, 两种算法滤波的PSNR差别很大, 改进的自适应中值滤波算法的PSNR明显大于标准的自适应中值滤波算法, 并且从图 2看, 两种算法的PSNR差距随噪声密度的增大呈递增走势.

图2 两种算法对标准图像Lenna滤波的PSNR比较

表1 两种算法对标准图像Lenna滤波的PSNR比较(单位:dB)

3.2 算法对医学图像的滤波结果的比较

对490×600、256级灰度的医学图像X_ray, 添加不同密度的脉冲噪声, 同时运用两种算法进行图像滤波. 从主观视觉和客观数据两方面, 对两种算法的滤波效果进行统计和比较分析.

(1) 主观视觉的比较

两种算法同时对不同密度的医学噪声图像进行滤波的效果图如图 3所示. 当噪声密度比较小时, 比如0.2或0.5, 用标准的自适应中值滤波算法进行滤波后,人体的边缘轮廓出现锯齿状阴影, 而改进的自适应中值滤波算法的滤波效果比较清晰. 如(e)和(h), (f)和(i)的比较. 当噪声密度比较大时, 比如0.8, 两种算法的滤波效果差别很大. 标准的自适应中值滤波算法的滤波效果出现了大量雪花状的白色斑点, 而改进的自适应中值滤波算法的滤波效果, 除了边缘的一些细小的失真外, 绝大部分的图像像素信号得以恢复. 通过滤波效果的比较, 相对标准的自适应中值滤波算法, 本文提出的改进的自适应中值滤波算法具有良好的滤波性能.

图3 两种算法对医学图像X_Ray的滤波效果比较

(2) 客观数据的比较

两种算法同时对不同密度的医学噪声图像进行滤波的PSNR如图 4所示. 对照图 3, 对3种不同密度的噪声图像进行滤波后的具体PSNR数值如表 2所示.对两种算法进行图像滤波后的PSNR进行统计和比较分析, 当噪声密度比较小时, 比如0.2或0.5, 改进的自适应中值滤波算法的PSNR一直高于标准的自适应中值滤波算法, 但差别不大. 当噪声密度比较大时, 比如0.8, 两种算法滤波的PSNR差别很大, 改进的自适应中值滤波算法的PSNR明显大于标准的自适应中值滤波算法, 并且从图 4看, 两种算法的PSNR差距随噪声密度的增大呈递增走势.

4 结束语

自适应中值滤波算法能有效地滤波图像的脉冲噪声, 但是, 随着噪声密度的增大, 算法的滤波性能递减,图像出现雪花状的斑点. 针对中值滤波算法的局限性,本文提出了改进的自适应中值滤波算法. 在噪声密度增大的情况下, 算法的滤波性能依然良好, 在滤除噪声的同时, 很好地保持图像的边缘和细节部分. 仿真实验的结果和数据证明, 相对标准的自适应中值滤波算法,改进的自适应中值滤波算法具有较好的滤波性能.

图4 两种算法对医学图像X_Ray滤波的PSNR比较

表2 两种算法对医学图像X_Ray滤波的PSNR比较(单位:dB)

猜你喜欢

中值灰度滤波
船岸通信技术下舰船导航信号非线性滤波
采用改进导重法的拓扑结构灰度单元过滤技术
天津港智慧工作平台灰度发布系统和流程设计
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
Arduino小车巡线程序的灰度阈值优化方案
一种考虑GPS信号中断的导航滤波算法
高效LCL滤波电路的分析与设计
Lagrange中值定理的巧妙应用
高等数学中拉格朗日中值定理的教学处理
Lagrange中值定理在微分学中的应用