由于种种原因,图像在生成、传输、变换等过程中往往会受到各种噪声的污染,从而导致图像质量退化。噪声信号的滤波是图像处理的基本任务之一,主要有线性滤波和非线性滤波两种方法。线性滤波方法一般具有低通特性,而图像的边缘信息对应于高频信号,因此线性滤波方法往往导致图像边缘模糊,不能取得很好的复原效果。中值滤波是一种使边缘模糊较轻的非线性滤波方法,是由Tukey发明的一种非线性信号处理技术,早期用于一维信号处理,后来很快被用到二维数字的图像平滑中。该算法不仅能够去除或减少随机噪声和脉冲噪声干扰,而且能够很大程度地保留图像的边缘信息,近年来在图像平滑和数据分析与处理等多个领域中得到广泛应用。尽管如此,由于它对窗口和数据点的高度依赖,使其在处理空间密度较大的冲激噪声时,处理效果和效率受到了限制。文献[4]提出一种自适应中值滤波算法,通过扩大窗口来相对减少冲激噪声空间密度,但它是基于方形窗口的,当窗口尺寸增大时,计算量将按平方增大,因此在速度方面还不够理想。在数字图像处理中,作为一种典型的非线性滤波方法,中值滤波应用得非常广泛,因而对提高其算法效率是非常有意义的。本文对Matlab工具箱中的中值滤波算法进行改进,提出一种基于×字形滤波窗口的自适应中值滤波算法,在有效去除噪声的同时,较好地保持了图像细节,缩短了运行时间。

1中值滤波的基本原理及传统算法

信号中值(medians)是按信号值大小顺序排列的中间值。长为n的一维信号{X,n∈N}的中值用下式表示:

相对二维图像信号{Xij:i,j∈N},二维中值滤波器定义为:

式 (1)、式(2)中:N表示自然数集;A为截取图像数据的窗口尺寸;r为窗口水平尺寸;s为窗口垂直尺寸;Xij为被处理图像平面上的一个像素点,坐标为 (i,j);Yij是以Xij为中心,窗口W所套中范围内像素点灰度的中值,即中值处理的输出值。窗口A可以采用不同的形式,通常有线段窗、方形窗、圆形窗、十字窗和圆环窗等。文献[6]对中值滤波的多种形态及其发展有详细的介绍。

中值滤波就是选择一定形式的窗口,使其在图像的各点上移动,用窗内像素灰度值的中值代替窗中心点处的像素灰度值。它对于消除孤立点和线段的干扰十分有用,能减弱或消除傅里叶空间的高频分量,但也影响低频分量。高频分量往往是图像中区域边缘灰度值急剧变化的部分,该滤波可将这些分量消除,从而使图像得到平滑的效果。对于一些细节较多的复杂图像,还可以多次使用不同的中值滤波。传统中值滤波算法的具体实现过程如下:

(1)选择一个(2n+1)×(2n+1)的窗口(通常为3×3或5×5),并用该窗口沿图像数据进行行或列方向的移位滑动;

(2)每次移动后,对窗内的诸像素灰度值进行排序;

(3)用排序所得中值替代窗口中心位置的原始像素灰度值。

图1是传统中值滤波算法的框图。其中,M,N分别表示滤波图像的行数和列数。

2自适应中值滤波的基本原理及改进算法

中值滤波是当前应用最广泛的滤波方法之一,然而,中值滤波的去噪效果和处理速度依赖于滤波窗口的大小及参与中值计算的像素点数目。当脉冲噪声概率小于0.2时,中值滤波是很有效的方法,当脉冲噪声概率超过0.2时,则使用自适应中值滤波方法。

×字形窗口的自适应中值滤波算法是对中值滤波的一种改进。相对于中值滤波而言,它能够处理空间密度更大的冲激噪声,并且在平滑非冲激噪声时,还可保存更多的图像细节;效率方面也较一般的自适应中值滤波有所改善。常见窗口及本文提出窗口如图2所示。

基本原理如下:

首先,采用3×3的×字形窗口进行计算,计算图像的中值滤波值Zmed、最大值滤波值Zmax和最小值滤波值Zmin,并判断噪声敏感度,即:如果 Zmec,不在Zmax和Zmin之间就自动增加×字形窗口的大小,然后重复以上的过程;对于Zmed在Zmax和Zmin之间的点先用原像素值与最大滤波值和最小滤波值进行判断,如果在其间,原值不做修改,反之就用Zmed取代原值。这一过程有如下的作用:

(1)使得未受脉冲噪声污染的点不用修改,很好地保护了图像的点、线等细节及边界信息;

(2)当检测到的噪声很强时,自动增大窗口,提高了去噪能力;

(3)当检测到的噪声不是很强时,就不用增加窗口的大小,既体现出自适应性,又减少了时间开销,提高了速度。

其中,×字形窗口的实现方法如下:

(1)先得到一个对角矩阵A;

(2)将对角矩阵A从左向右翻转,得到一个矩阵B;

(3)将矩阵A与矩阵B取或运算,得到X字形矩阵C。

3基于×字形窗口自适应中值滤波算法的Matlab实现

中值滤波是数字图像处理中一个很重要的部分,Matlab工具箱中有该函数,用到中值滤波算法时可直接调用。因此,用Matlab编程具有简单、方便、快捷等优点。另外,还可以对其内部函数进行改进。本文的算法就是通过另外编程修改中值滤波有关的内部函数实现的。下面就是自适应中值滤波算法的实现流程,添加新的库函数——adpmedianXzi对图像处理工具箱进行扩展,以实现数字图像自适应中值滤波(部分伪代码)。

4实验结果及其分析

在实验中,选择了大小为256×256像素、灰度为256级的Lena图像。实验环境为IBM R52,Matlab7.0软件。实验结果如图3、图4所示。

图3(b)显示了被“椒盐”噪声污染了的图像,该噪声的概率为Pa=Pb=0.25。这里噪声水平非常高,能够模糊图像的大部分细节。作为比较的基础,图像首先用7×7的中值滤波器进行滤波,消除大部分可见的脉冲噪声痕迹(见图3(b))。虽然噪声被有效消除了,但是滤波器在图像上也引起了明显的细节损失。

图3(d)显示了使用Smax=7的方形窗口自适应中值滤波器的效果,噪声消除水平同中值滤波器相似。图3(e)为基于×型窗口的自适应中值滤波效果。自适应滤波器保持了点的尖锐性和细节。可见,改进是很明显的,而且通过对比方形窗口与×字形窗口发现,×字形窗口的运行效率也提高了不少。

5结语

通过对Matlab图像处理工具箱中算法的改进,实现了一种快速自适应中值滤波算法。在对图像滤波前,首先判断是否为脉冲,然后采取变化×字形窗口大小来对噪声进行滤波,这样既有效消除了噪声,也很好地保持了图像细节。实验结果表明,基于×字形的滤波方法比一般自适应中值滤波效率有了一定程度的提高。算法原理简单、稳定、实用。若进一步研究,可针对不同噪声采取更加智能的处理措施,如CWMF&ANFIS(自适应模糊神经中值滤波系统),用以达到更好的处理效果。

matlab中基于十字形窗口的滤波算法,×字形滤波窗口在Matlab自适应中值滤波算法中的应用...相关推荐

  1. matlab中基于十字形窗口的滤波算法,#215;字形滤波窗口在Matlab自适应中值滤波算法中的应用 - 21ic中国电子网...

    由于种种原因,图像在生成.传输.变换等过程中往往会受到各种噪声的污染,从而导致图像质量退化.噪声信号的滤波是图像处理的基本任务之一,主要有线性滤波和非线性滤波两种方法.线性滤波方法一般具有低通特性,而 ...

  2. 中值滤波_Halcon联合C#编程自学笔记三之中值滤波

    [前言] 在图像预处理过程中有中值滤波.均值滤波.高斯滤波等,本次主要研究中值滤波.中值滤波是消除图像噪声最常见的手段之一,特别是消除椒盐噪声,中值滤波比均值滤波更好.它的基本原理是计算出数字图像中的 ...

  3. C#,动态规划问题中基于单词搜索树(Trie Tree)的单词断句分词( Word Breaker)算法与源代码

    分词是自然语言处理的基础,分词准确度直接决定了后面的词性标注.句法分析.词向量以及文本分析的质量.英文语句使用空格将单词进行分隔,除了某些特定词,如how many,New York等外,大部分情况下 ...

  4. 噪点检测matlab,基于噪点检测的中值滤波图像去噪方法

    摘  要: 图像去噪是图像处理中一个非常重要的环节.针对传统中值滤波方法存在的不足,提出一种新的基于噪点检测的自适应中值滤波图像去噪方法.该方法通过自适应地改变滤波窗口的大小,局部检测并判断极值点是否 ...

  5. 【Matlab】基于决策树DT实现多分类预测(Excel可直接替换数据)

    [Matlab]基于决策树DT实现多分类预测(Excel可直接替换数据)) 1.算法简介 1.1 算法原理 1.2 算法优点 1.3 算法缺点 1.4 算法步骤 2.测试数据集 3.替换数据 4.混淆 ...

  6. 游戏中基于物理的渲染(一)

    "游戏中基于物理的渲染"系列由4-5篇文章组成,介绍了如何在实时渲染中使用基于物理的方法.内容主要来自于SIGGRAPH 2010的course:Physically-Based ...

  7. Android中基于心知天气API获取天气信息

    Android中基于心知天气获取天气信息 JSON JSON简介 JSON对象 JSON数组 JSON解析 Android中获取天气 获取天气的流程 获取心知天气的API key 获取心知天气的API ...

  8. 社交网络中基于位置的影响力最大化 CIKM2015 译文

    社交网络中基于位置的影响力最大化 摘要 这篇文章的目的是通过研究在LBSN平台中基于位置的影响最大化来实现O2O模式上的产品推广.随着O2O环境下存在的消费行为,传统的线上影响力扩散模型不能准确描述产 ...

  9. 游戏中基于物理的渲染

    转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=493 "游戏中基于物理的渲染"系列由4-5篇文章组成,介绍了如何在实时渲染 ...

  10. matlab确定灰度阈值T,matlab灰度图像二值化【灰度图像二值化算法研究】

    摘要: 在很多图像处理的过程中,经常需要对灰度图像进行二值化.本文对几种常用的图像二值化算法进行了阐述,并通过仿真,进行比较研究.根据实验结果,阐明了各种算法的优缺点. Abstract: The b ...

最新文章

  1. java combinationsum_Leecode39 combination-sum
  2. oracle-一些查看性能相关的视图
  3. 【深度学习入门到精通系列】医疗影像分割
  4. 在多字节的目标代码页中,没有此 Unicode 字符可以映射到的字符
  5. 每天一道LeetCode-----二叉搜索树的某两个节点被交换位置,修正这个二叉搜索树
  6. Linux下数据库(sqlite3)学习笔记
  7. 贪心算法(Greedy Algorithm)之霍夫曼编码
  8. linux创建文件后会自动删除,linux会自动删除目录和文件的吗
  9. vim怎么把一个写的代码文件另存到任意文件夹里?
  10. Lighting build failed. Swarm failed to kick off UE4光照构建失败
  11. QQ群文件下载速度慢怎么办
  12. 使能和测试ARM64内核PAN机制
  13. 《语义计算群:AI 理性主义的终结是不可能的吗》
  14. 谷歌研究利用AI合成图片,使静态图片动起来
  15. GNSS连续运行单参考站解决方案
  16. 上汽集团进军网约车市场  滴滴的市场地位会被传统车企们挑战成功吗?
  17. Java时间戳与日期格式转换工具类
  18. 赵长鹏回复协助洗钱质疑; 欧洲通过区块链监管
  19. 【PaperReading】The permutation testing approach: a review
  20. UDS安全访问之27服务SecurityAccess

热门文章

  1. js上传excel文件
  2. Linux安装Tomcat8并启动或停止tomcat服务
  3. 今日头条视频去重复上传方法-网络营销推广教程 如何完美去除视频字幕和LOGO批量下载快手西瓜视频...
  4. 数字图像处理课程设计
  5. 查看linux有多少线程总数,linux线程总数
  6. unity粒子特效附上贴图后播放动画
  7. matlab振荡环节相频特性,自动控制理论—典型环节的频率特性
  8. Redfish数据中心管理标准详解
  9. Un*、Id分别突变情况下单闭环直流调速系统仿真
  10. C语言反汇编 - 函数与结构体