当前位置:文档之家› 基于Matlab的图像去噪算法的研究...

基于Matlab的图像去噪算法的研究...

2011级毕业设计(论文)

基于MATLAB的图像滤波中值算法研究

年级: 2011级

学号:

姓名:

专业:电子信息工程

指导老师:

二零一五年六月

\\

摘要

数字图像在其形成、传输记录过程中经常会受到各种各样噪声的污染,影响了图像的视觉效果,妨碍了人们的正常识别,严重时会影响图像中的有用信息。所以,消除图像采集和传输过程中产生的噪声,降低噪声对原图像的干扰,提高图像质量,增强图像视觉效果,成为了数字图像处理领域里的重要部分。

本文首先对噪声的几种类型进行了介绍,重点讨论了几种经典的图像去除噪声的滤波算法,然后本文主要研究分析均值滤波法、中值滤波法、维纳滤波法,并进行相应的仿真。对图像处理应用时的常用函数及其主要用法进行分析,详细阐述了这三种去噪算法原理及特点,最后运用Matlab软件对多张图片进行仿真去噪,并对去噪效果进行评价与分析。并在此基础上,提出了一种改进的中值滤波去噪方法。

关键词:图像去噪;均值滤波;中值滤波;维纳滤波

程序代码抠叩82 192 8248

Abstract

The digital image in the formation transmission and recording process is often polluted by various noises, affect the visual effects of the image, and impede the normal people's recognition, seriously affecting the useful information of a image. Therefore, eliminate the noise of image acquisition and transmission processing, reduce the noise disrupt original image, improve image quality, enhance the visual effect of the image, has become an important part of the field of digital image processing.

In this paper, firstly, several types of noise were introduced, emphasis on discussing several classical filter algorithm for image denoising, and then this paper focuses on the analysis of the average filtering, median filtering, Wiener filtering denoising, and the corresponding simulation. The common function of image processing applications and usage analysis, elaborated the principle and characteristics of this three image denoising method, finally using Matlab software to simulate some map of noise to image denoising, evaluate and analysis the effect of denoising. On this basis,an improved median filtering denoising method are proposed.

Keywords:Image denoising; Average filtering; Median filtering;Wiener filtering

目录

摘要................................................................................................................................................... I I Abstract ................................................................................................................................................... III 第1章绪论 . (1)

1.1本设计的背景和意义 (1)

1.2本设计的主要方法和研究进展 (1)

1.3本文主要工作 (2)

第2章Matlab简介 (3)

2.1 Matlab概况 (3)

2.2 Matlab发展过程 (3)

2.3 Matlab的语言特点 (3)

2.4 MA TLAB常用方法及其函数 (4)

2.5本章小结 (4)

第3章图像去噪理论与技术 (5)

3.1图像噪声概述 (5)

3.1.1图像噪声的来源 (5)

3.1.2噪声的类型 (5)

3.2均值滤波算法 (7)

3.3中值滤波算法 (8)

3.4维纳滤波算法 (9)

3.5本章小结 (10)

第4章基于Matlab的图像去噪算法仿真 (11)

4.1 均值滤波的仿真 (11)

4.2 中值滤波的仿真 (12)

4.3 维纳滤波的仿真 (12)

4.4 几种去噪方法的比较分析 (13)

4.5 本章小结 (14)

第5章改进的中值滤波算法 (15)

5.1 改进算法的提出 (15)

5.2 算法实现与原理分析 (15)

5.2.1 噪声检测 (15)

5.2.2 噪声去除 (16)

5.3 仿真实验与结果分析 (17)

5.4 本章小结 (19)

结论与展望 (20)

致谢 (20)

参考文献 (22)

附录 (23)

程序代码抠叩82 192 8248

大学本科毕业设计

第1章绪论

1.1本设计的背景和意义

在步入了信息化时代的今天,人们每天都要处理各类信息,在对各种各样信息的处理中计算机担当着重要的角色。百闻不如一见,对于绝大多数的事物和场景,往往一幅图像就可表述清楚,图像在信息传播中的作用越来越大。然而人们在数字化设备中接收的图像,多多少少会受到噪声的影响,噪声有时对图像携带的信息是致命的,这就需要对图像进行滤波等操作使电子设备中接收的图像能够被人识别。图像分割、边缘检测、模式识别、特征提取这些图像处理操作由于噪声的存在,迫使人们从各种角度提高图像的质量[1]。因此对数字图像进行必要的滤波处理变得势在必行。

图像去噪做得好可以帮助我们有效地还原图像,使我们更方便地发现我们所需要的图像信息。现阶段图像去噪已经在生活的方方面面带来影响,帮助我们解决无数难以解决的难题。通过对普通的去噪算法进行优化改进,以增强人们的视觉读取,恢复图像的原有信息,降低图像噪声对原图像的影响,具有重要的研究意义。

1.2本设计的主要方法和研究进展

本文在大量阅读文献的基础上通过使用MATLAB软件进行仿真实验,并总结每种去噪方法的优缺点。并针对噪声检测提出新的改进的滤波算法,通过努力,达到最终目的,能更好地还原含有高密度噪声图像,最大限度地去除噪声。

因为图像去噪是很多技术实现的前提,现今图像去噪技术走在了科学研究的前沿,发展速度非常快。图像去噪既有多种经典算法,也存在像模拟退火法等改进的算法[2]。这种方法取得了不错的去噪效果,但存在的一些问题也暴露的非常明显,它对运算有着极高的要求,费时费力。之后也有许多研究者提出了新的改进算法,到现在的有些非线性滤波方法如各向异性扩散法、正则化方法、最小能量泛函方法已卓见成效[3]。

中值滤波算法对去除椒盐噪声最为有效,是一种非线性平滑技术,它以排序理论为基础,通过对像素中值的提取和替换来进行图像去噪[4]。但是它也存在一些明显的缺点,在对一些类似于棱角细线的细节处理中,效果不好,容易造成细节的损坏。大量的研究者针对传统的中值滤波算法的缺点,对中值滤波进行了大量的改进和优化,也取得了明显的效果。这些算法通过不同角度达到了有效去除噪声的效果,同时也对图像细节以及边缘信息的保护做的很好[5]。但是在对细节较为丰富的图像处理中,容易将非噪声点误认为噪声点进行去噪处理,对图像的去噪效果带来很大的影响。另外在去除含有高密度噪声的图像中,大部分算法处理效果一般,在图像处理中依然是个难点。

1.3本文主要工作

本文通过对国内外去噪算法的相关资料进行研读分析,学习了解图像处理的基本知识,寻找解决问题的最佳方法。对均值、中值及维纳滤波这三种算法进行原理剖析,对其去噪过程进行研究分析和讨论。

之后对滤波算法使用MATLAB软件进行仿真,通过观察仿真效果图,对比并总结每种方法的优缺点。对中值滤波算法进行研究时,首先明确传统函数去噪的基本原理,分析各自的优缺点,然后在传统去噪算法的基础上进行改进,提出新的噪声点检测方法,避免噪声的漏检,增强图像的质量。

本论文主要内容安排如下:

第1章绪论部分,对当前图像去噪的发展背景以及研究意义进行叙述

第2章Matlab简介:介绍软件Matlab的基本概况及常用函数的用法。

第3章图像去噪理论与技术:对图像噪声进行概述并从各方面对噪声分类,了解噪声产生的原因和特性。对均值、中值及维纳滤波法的去噪原理及特点进行了详细阐述。

第4章进行去噪算法仿真:对几种去噪算法分别用Matlab软件编写仿真代码,对一张彩色图片进行灰度变化后加噪处理,包含添加高斯和椒盐噪声,然后进行去噪处理,并对去噪效果进行分析比较。

第5章改进的滤波算法:对传统的中值滤波进行优化,提出新的噪声检测方法,并进行仿真对比,对结果进行分析。

第6章工作总结及展望。

第2章 Matlab简介

2.1 Matlab概况

MATLAB是矩阵实验室(Matrix Laboratory)的简称,主要包括MATLAB和Simulink两大部分[20]。在1983年由mathworks公司正式推出的高科技计算环境,其版本目前已更新到7.1版,随着其版本的更新,软件功能不断增加。在当今数学类科技应用软件中处于先进水平。

随着MATLAB的快速发展,许多工作平台逐渐的被来发出来,使其成为具有多种学科的强大软件。在国内外许多的高校中,Matlab已成为各种高级课程的教学工具,并为广大学者提供高品质的开发设计环境[22]。Matlab因其在各地域和领域都能使用,广泛的应用于研究解决各种问题,可以从中找到最佳解决问题的办法。Matlab在中国几年内也盛行了,已得到重视,因为在Matlab中无论哪个工程学科领域都可以找到合适的功能,已成为工作必备的软件工具。

2.2 Matlab发展过程

在上世纪七十年代末,美国一大学教授为学生设计了一组通俗易懂的接口,本着为减轻学生编程负担的目的,收到了很好的反馈评价。这种萌芽状态的Matlab是用FORTRAN语言编写的。

MATLAB之后在校内外铺天盖地流传开来,在一位学者推动作用下,把MATLAB 正式推向市场,于1984年成立了MathWorks公司,从此以后,此软件慢慢被人熟知。此时,Matlab的内核采用C语言编写,已经具有出众的计算能力,另外增加了数据视图功能[6]。

在MATLAB出现后的仅几年里,以其开放性和可靠性的优点,迅速占领市场,其优势是其他软件无法比拟的,在软件市场中逐渐淘汰了传统的软件包,并在后十几年间就成为国际公认的标准计算软件[7]。在1993年MathWorks公司推出Matlab4.0版本,推出了SIMULINK,开发了内外交互的组件等。对以前欠缺的能力有了极大的增强,此时MATLAB软件的功能已经非常强悍[8]。

现如今,Matlab已被认为科学计算标准软件,Matlab的应用随处可见。

2.3 Matlab的语言特点

一种语言之所以能够迅速的发展普及,是由于它有着不同于其他语言的特点,最突出的特点就是简洁灵活,其代码符合人的惯性思维。

MATLAB语言简洁紧凑,语法限制不严,在程序开发时可以自由灵活发挥。他拥有完整的运算符,库函数在同类软件中也最为丰富,为日常的数据处理带来极大的便利[9]。其开发界面简洁明朗易于接受,编程效率高,没有冗杂的程序,被称为草稿

式语言。由于MATLAB的程序为解释执行,与其他高级程序相比,程序的执行速度较慢,这也是MATLAB的主要缺点。

综上所述,Matlab具有强大的优势,是其他语言难以比拟的,在同类市场中占有的比重是也其他软件无法撼动,相信在以后的不断使用中会发现它的巨大潜力。2.4 MATLAB常用方法及其函数

MATLAB常用的基本函数为:

(1)读写图像:A = imread(filename,fmt) 将‘文件名.格式’的图像赋给A。用来读取bmp、tif、jpg、等格式图像。图像写出函数Inwrite();图像显示函数Imshow ();warp ()显示图像为纹理表面函数。图像旋转:X= imrotate(Y,angle,method) 将图像Y以某种方式旋转多少度。图像截取命令:Image Cropping。

(2)直方图显示与调整:Imhist(I)显示I的直方图,Imadjust(I)调整I的直方图。

(3)图像分割:其命令是:edge 。主要格式有:BW = edge(I,'methodl') 。method 为检测方法: sobel、prewi t、roberts、log、zerocross、canny 等[10]。

2.5本章小结

本章主要对Matlab软件进行了简单介绍,对它的发展历史和功能特点进行概括。并对其常见函数的用法进行了解,为后面使用MATLAB语言实现模拟仿真打下基础。

第3章图像去噪理论与技术

3.1图像噪声概述

图像噪声是最常遇到的,是图像在摄取或传输过程中随机信号所造成的干扰,是指妨碍人的直接视觉感知,阻碍系统对图像的分析的各种因素。噪声在理论上是不可预测的,人们无法通过视觉对其进行准确定位,因此它属于随机误差,可以换个角度从概率统计方法来认识。为了对噪声的特征进行描述,一些噪声的描述方法不断被提出,但事实上这些方法是很复杂的,而实际应用往往也不必要,所以通常可以从某些参数方面反映出噪声的特征[11]。

3.1.1图像噪声的来源

图像噪声的产生是随机的,其产生的原因可总结为内部和外部两部分:

外部噪声,指外界环境对图像产生的一些影响因素,像电气设备的运行,天空打雷放电等产生的噪声。这些是由于系统外部的电流变化而引起内部系统相应因素的瞬变。

内部噪声,又可分为四种,如粒子运动产生的散粒噪声此类由光电的引起的噪声,器材材料本身引起的噪声,电器的机械运动产生的噪声,以及设备电路和系统所引起的噪声[12]。

3.1.2噪声的类型

图像噪声各种各样,为方便理解噪声产生的原因,对图像噪声进行分类,此举有助于对噪声的位置给予定位,可以对降噪算法原理的理解起到帮助。

图像噪声可以从各个角度进行类型区分,根据统计理论观点进行区分,统计特性不随时间变化而变化的噪声称其为平稳噪声,反之称其为非平稳噪声。也可以按噪声的频谱归类为白噪声,与频率平方成正比关系的称为三角噪声等[13]。

另外通过对比噪声对信号的影响程度,以及按照噪声与图像的数学关系,将噪声分为乘性噪声和加性噪声,加性噪声又可以分为多种,包括一些典型噪声如椒盐噪声、高斯噪声等。

(1)加性噪声是指像一般的功率放大设备或摄像扫描过程产生的噪声,是图像在传输过程中引进的一些噪声。

设()y x f,

为信号,干扰信号后的输出为

()y x g,

,则加性噪声表示为:

()()()y x n

y

x

f

y

x

g,

,

,+

=(3-1)

加性噪声一般是在图像生成的过程中产生的,即由信号发生源产生。在图像的处理过程中它与图像发生重叠,形成的含噪声图像会在输出端表现出来,形成的波形是噪声

和信号的叠加[14]。

(2)高斯噪声。顾名思义,符合高斯分布的概率密度函数的噪声,此类噪声即为高斯噪声,高斯噪声是一种随机噪声。其概率密度函数为:

?

?

?

?

?

?-

-

=

2

2

2

)

(

exp

π

2

1

)

(

σ

μ

σ

z

z

p

(3-2)其密度函数曲线如图3-1:

图3-1 高斯噪声的密度函数曲线

从曲线图中可以看出,噪声为平稳的状态下,平均值与时间无关,时变平均值和两瞬时的协方差两部分共同确定了高斯噪声。大量独立的脉冲可以产生高斯噪声,在任何有限时间间隔内,每一个脉冲值与脉冲值总和相比都可忽略不计。

(3)椒盐噪声。通常是由传感器、图像传输信道和解码处理等产生的,产生的噪声能够明显的辨别出来,是一种随机的白点或者黑点[15]。其概率密度函数如下式

其他

b

z

a

z

P

P

z

p

b

a

=

=

?

?

?

?

?

=

)

(

(3-3) 式中图像像素灰度值用z来表示,灰度值的相对大小决定其显示效果。若a显示为一个亮点则a值大于b,此时较小值b显示为一个暗点。在a P和b P任意一个为零的情况下,产生单一极性的脉冲,就是只有正脉冲或只有负脉冲[16]。此时脉冲噪声称为单极脉冲。

(4)乘性噪声虽能对信号构成干扰,但也能对图像起到调制作用,其输出是两部分的叠加,表达式为:

()()()()y x n y x f

y

x

f

y

x

g,

,

,

,+

=(3-4)从上式可以看出,第二个噪声项受

()y x f,

影响,第二项随

()y x f,

的增大而增大,说明了噪声受信号的限制。在第二项很小的情况下,即图像灰度变化和噪声很小,可

忽略不计,此时可近似地将乘性噪声看作是加性噪声。综上所述,对于均值为零且方差不同的高斯白噪声,可将其作为大多数图像噪声的模型,图像灰度变化幅度较小且噪声也很小的情况下,乘性噪声可近似看成为加性噪声。

3.2均值滤波算法

均值滤波是一种典型的线性滤波算法,这种滤波方法是对信号进行局部领域平均,是用图像像素的均值替代原图像中所有的像素值[17]。为了实现这种算法,可以选择一个模板,把邻域的像素置于此模板中。去掉目标像素本身,以目标象素为中心的周围8个像素建立为一个滤波模板,再把原来像素值用所求的平均值来代替。幅值近似相等且随机分布在不同位置上,这样可以平滑图像,速度较快,算法简单。如表3-1所示: 表3-1 模版示意图

1 2 3

8 0 4

7 6 5

在上示意图中,模板中有9个像素,0是当前目标像素,剩下的1-8是其临近像素。进行均值滤波先求模板中的所有像素的均值,再用求得的均值代替当前像素点(,)x y 的值,滤波后,该点上的灰度为(,)g x y ,即:

(,)g x y =∑∈S

f y x f N ),(1

(3-5)

式中所用的模板为S ,像素总个数为N ,即N=9。通常模板选择为3?3,5?5,这是考虑到数据的分布具有平衡特性,然后将待处理的像素置于中心。

为了更好地理解此算法,以一个实例来演示滤波过程。包含噪声干扰的图像数据为:

???????

?????????=98765807558862543210134121f (3-6) 由于图像数据被大括号包围,滤波时无法覆盖边框上的像素,使部分像素不能被识别,因此对边框上的像素不做处理,只能使用3?3的模板对其进行均值滤波。选取非边框区域的像素进行处理,取其3?3的邻域,计算其中9个像素的灰度值平均值,然后进行均值操作。

在原图中,)2,2(f 值为10,在所有像素中该点的灰度值最大,可以初步判断其为噪声点,)2,2(f 的模板为:

)2,2(m f =????

??????6252101121 (3-7) 则其滤波后的均值为: g(2,2)=int ??

? ??++++++++?)6252101121(91=3 (3-8) 其中,int()表示整数函数。通过滤波后对像素值大于周围的噪声进行抑制。同理对于像素)4,4(f ,其值为0,最小。其模板中的像素为:

??????????=987807886)4,4(m f (3-2-5)

滤波后的均值为: g(4,4)=int 7)987807886(91=??

? ??++++++++ (3-9) 通过这种方法将像素值小于周围的噪声进行了削弱。对原图像处理的最后结果为:

????????????????=9876587

555

855554443134121g (3-10) 由此可见均值滤波算法简单方便,通俗易懂,对噪声点的削弱比较明显,但显而易见的是,图像的边缘处理方面却不令人满意,几乎没有对边缘进行改善,不能很好地保护图像细节。

3.3中值滤波算法

随着中值滤波的不断发展,功能不断完善,在一定的条件下,能有效的滤除脉冲干扰以及图像扫描产生的噪声,可以解决一些滤波器在图像处理中导致的图像细节损坏等问题。但是中值滤波也是有局限性的,太对一些含棱角细线的细节图像处理效果一般,不能很好地保护图像细节,对这些图像的去噪处理不提倡使用中值滤波的方法。

中值滤波的基本原理是用噪声点周围各像素点的灰度值的中值来取代该点,通过计算并替换灰度值达到滤除噪声的目的。设有一个一维序列1f ,2f ,…,n f ,现在利用中值算法对这个序列进行滤波,首先从序列中陆续取出m 个数,v i f -,…,1-i f ,…,1f ,…,1+i f ,…,v i f +,通常m 的值为奇数,若为偶数则不便取中间值。其中i 为中

心位置,v=m-1/2,把这些数取出后进行排列,把m 个数按大小排列完整,输出队列中正中间的那个值就是中值[18]。用公式表示为:

{}v i i v i i f f f Med Y +-=,,,,ΛΛ 2

1,-=∈m v Z i (3-11) 例如我们对这样一个序列{0,3,5,1,7}进行滤波,首先是把队列里的数字按从小到大的方式进行排序,排序后序列变为{0,1,3,5,7},序列的中间的值也就是其中值为3。平均滤波的一般输出则为:

()m f f f f Z v i i v i v i i ++--+++++=ΛΛ1Z i ∈ (3-12)

使用中值滤波对一般的一维和二维序列进行滤波时,其滤波窗口是限定的。对于二维序列{}ij X 进行中值滤波时,滤波窗口也是二维的,对于不同的噪声分布,可以使

用不同形状和大小的滤波窗口。针对不同的滤波环境,一些方形、圆形、十字形、线状等各种不同的形状二维窗口也在不断被使用。二维数据的中值滤波可以表示为:

为滤波窗口A X Med Y ij A

j i },{,= (3-13) 在实际使用时,对滤波窗口的选择要实际情况来决定,不同形状和大小的滤波窗口会有不同的滤波效果。为使滤波效果更好,可以对滤波窗口的尺寸不断调整,一般先用33?再取55?逐渐增大。在使用二维中值滤波时,由于算法对图像的一些细节处理不完善,要对图像中有效的细线状物体的保护特别留意。从总体上来说,与均值滤波相比,中值滤波对一些含有突变的图像信息能够很好地处理,能够将原图像较突出的信息妥善地保留。

3.4维纳滤波算法

维纳滤波是指在含噪声图像中提取出一些正常的图像信号的方法,通过对特征信号的提取来恢复图像的原始特点。对于这种滤波算法,其滤波效果由均方误差体现,均方误差为理论期待输出效果与事实上输出之间的差值的均方。在研发工作中为取得较好的图像噪声滤除效果,从各方面加强图像处理和运算使均方误差最小,这其中最重要的部分就是对冲激响应的的求解。国外研究者也提出了一些标准作为解决问题程度的参考,就如维纳-霍夫方程,只有满足此方程才能使维纳滤波器达到最佳。根据此方程,滤波效果是由输入和输出的相关函数共同决定[19]。

对于一个线性系统,设它的单位样本响应为)(n h ,当输入一个随机信号)(n x ,且

)()()(n v n s n x += (3-14)

其中)(n x 表示信号,)(n v 表示噪声,则输出)(n y 为:

∑-=m

m n x m h n y )()()( (3-15)

我们希望)(n x 通过线性系统)(n h 后,得到)(n y 尽可能接近)(n s ,因此称)(n y 为)(n s 的估计值,用^

)(n s 表示,即

^)()(n s n y = (3-16) 则此滤波器的输入与输出关系可用下图3-2表示。

h (n ) )(?)(n s

n y = )()()(n n s n x υ+=

图3-2

实际上,式(3-4-2)所示的卷积形式可视为从当前和过去的观察值)(n x ,)1(-n x ,)2(-n x …)(m n x -,…来估计信号的当前值^

)(n s 。因此可以看出,)(n h 过滤问题的过程其实也是对问题的统计和估算过程。

从当前的和过去的观察值)(n x ,)1(-n x ,)2(-n x …对当前的信号值^)()(n s n y =进行统计和估算的过程称之为过滤或滤波[21]。维纳滤波器可以从过去的观察值估计当前或将来以及过去的信号值。

我们用一个表达式来说明信号真实值与估计值的误差,即

)()()(^n s n s n e -= (3-17)

)(n s 表示信号的真实值,^)(n s 表示信号的估计值,用)(n e 表示他们之间的误差。 )(n e 的值是不固定的,所以表达误差用它的均方误差是合理可行的,要求均方误差最小也就是它的平方的统计期望最小:

min )]([)(2

==n E n e ξ (3-18)

对于平稳随机过程无论是连续或离散的,是标量的还是向量的,维纳滤波都可以应用,其优点就是适应面较广。 维纳滤波要求输入是平稳的且已知无干扰的信号。这些要求也是为了实现最佳滤波效果,然而,这些要求由于外界未知环境对信号极易产生干扰,而难以满足。

3.5本章小结

本章首先对图像噪声进行概述,对噪声产生的原因进行分析,并通过不同角度对图像噪声进行分类。重点介绍了高斯噪声和椒盐噪声,有助于后面对噪声的检测,可以对降噪算法起到原理上的帮助。

然后对三种常用的去噪方法进行详细的剖析。

第4章基于Matlab的图像去噪算法仿真本文选用一张彩色图片,将其转换为灰度图片后进行加噪处理,分别添加高斯噪声和椒盐噪声,并对加噪后的图像进行Matlab软件仿真去噪。matlab读入的原始图像如图4-1所示:

图4-1 原始图像”tupian”

给图像加入高斯噪声,噪声均值为0,方差为0.02。加入椒盐噪声,噪声密度定为0.02。灰度转换和加噪处理主要程序:

b = imread('D:\tupian.png');

l=b(:,:,1)*0.299 + b(:,:,2)*0.587 + b(:,:,3)*0.114;

imshow(b)

J = imnoise(l,'salt & pepper',0.02); % 加入椒盐噪声干扰

k = imnoise(l,'gaussian',0,0.005); % 加入高斯噪声干扰

噪声效果图如图4-2所示

图4-2 分别加入椒盐和高斯噪声的效果图

4.1 均值滤波的仿真

主要matla程序:

K1= filter2(fspecial('average',3),J)/255;

subplot(234),imshow(K1)

title('3*3的椒盐噪声均值滤波')

K2= filter2(fspecial('average',7),k)/255;

subplot(235),imshow(K2)

title('3*3高斯噪声均值滤波')

仿真结果如图4-3所示。

图4-3 均值滤波法对椒盐噪声和高斯噪声去噪的仿真结果从仿真结果可以看出:此种算法法实现起来很简单,对消除图像中的噪声有很高的实用性。但这种方法使整体的图像进行了平滑,对图像细节起到破坏的反作用,且使图像质量有所下降。从处理后的图像中我们无法从视觉上直接读取图像信息,图像边缘部分破坏严重,图像也严重失真。如上右图所示,均值滤波对高斯噪声的处理是比较好的,使图像一目了然,有效的去除了噪声。但如上左图所示,椒盐噪声只是稍微减少,噪声仍然很明显的存在。

4.2 中值滤波的仿真

由于matlab软件内具有丰富的库函数,使用方便,也可以根据算法原理编写程序,可见附录。根据系统函数其主要matla程序:

K1 = medfilt2(J);

K2 = medfilt2(k);

subplot(121),imshow(K1),title('椒盐噪声中值滤波处理')

subplot(122),imshow(K2),title('高斯噪声中值滤波处理')

仿真结果如图4-4所示。

图4-4 中值滤波法对椒盐噪声和高斯噪声去噪的仿真结果从仿真结果可以看出:图像经过处理后,肉眼基本看不出图像含有噪声,因此它对椒盐噪声的去除非常有效,能明显提高图像质量,增强视觉效果。但对于高斯噪声来说,如上右图所示,虽然也有一些去噪效果,但效果不佳,图像中仍有噪声的存在,图像显示的质量较差。但对仿真结果仔细观察会发现,图像中的细线和小方块有时会模糊或消失,一定程度上损坏了图像细节,不过整体上去噪效果良好。

4.3 维纳滤波的仿真

主要matla程序:

K1 = wiener2(J);

K2 = wiener2(k);

subplot(121),imshow(K1)

title('椒盐噪声维纳滤波处理')

subplot(122),imshow(K2)

title('高斯噪声维纳滤波处理')

仿真结果如图4-5所示。

图4-5 维纳滤波法对椒盐噪声和高斯噪声去噪的仿真结果从仿真结果可以看出:维纳滤波对高斯噪声的图像滤波效果比均值滤波算法要好,它的像素选择性更好,能明显去除噪声点。对图像的边缘和细节信息的保护做的也非常到位,处理效果一般能达到图像复原的要求。但是对于椒盐噪声的去除,其效果却不尽人意,噪声仍然大幅存在,去噪处理几乎没有效果。

4.4 几种去噪方法的比较分析

均值滤波对高斯噪声展现出良好的去噪能力,能大幅度的提高图像视觉效果。在均值操作过程中虽然图像信号整体大小不变,但这里的平均会引起图像失真现象。带来图像细节对比度不好且区域边缘模糊的缺点。

中值滤波是常用的滤波方法,是对图像进行使用分析前进行处理优化的重要一步,这种技术已经被越来越多的使用在图像前期处理中。它可以在有效清除噪声的同时,克服其他滤波器给图像带来的模糊,从而获得较满意的滤波效果,适合对椒盐噪声及干扰脉冲的去噪处理。滤波时要选用合适的窗口形状和大小,以便于更好的对噪声点进行检测和抑制。中值滤波对高斯噪声的处理表现不佳,处理后的图像模糊,直接影响视觉识别。对一些复杂的图像,如噪声密度较高的图像和图像细节较丰富的图像,可以使用一些改进的滤波算法,通过改善中值滤波的一些不足,从而达到更好的滤波效果。

维纳滤波是最早也是最先为人熟知的图像复原方法,具有较广的适用面,有十分重要的应用价值。通过对滤波算法的仿真,从去噪效果图中可以看出对噪声的去除有些效果,相对于另外两种去噪算法,维纳滤波的优点显而易见,但存在的缺点也很严重,它容易使图像的边沿部分信息损坏和丢失。

上述算法虽都有一定的降低噪声的作用,都能达到对图像进行加工的基本要求。但同样存在些缺点,没有完美的滤波算法,只能通过人们的不断探索与改进提供更优的算法。因此,设计更好的滤波算法,解决实际中其他传统算法不能解决的问题,成为日后学术研究的重点

4.5 本章小结

本章主要内容是应用三种算法对含噪声的图片去除噪声,应用的仿真软件是Matlab7.0软件,通过实验对算法的去噪效果更加的理解。并对三种算法的处理结果进行综合分析。程序代码抠叩82 192 8248

第5章改进的中值滤波算法

5.1 改进算法的提出

对噪声信号的去除是图像处理的基本任务之一,中值滤波算法因其良好的去噪效果,已被广泛的应用和研究。但是由于中值滤波算法对像素点是否被噪声污染没有考虑,对所有的数值进行相同的处理,导致去噪过程中损坏了原图像原有的信息。近年来算法研究者也提出一些改进的算法,但算法对检测出来的噪声信号进行传统的处理,不能进行针对性的操作,把像素点作为噪声而处理,对于高密度噪声处理性能大大降低。

本文在中值滤波算法的基础,通过阅读相关文献,提出以下两方面的改进:(1)对噪声的检测方法调节改进,解决把正常图像信号判定为噪声的问题,并对检测出的假噪声做进一步的检测,防止噪声点的遗漏。

(2)对于检测出来的的噪声点,用临近区域内信号点的中值,取代传统算法用包括噪声点在内的所有点的中值代替噪声点,这样取得的中值更接近信号点,就能有更好的去噪效果。

改进的算法在实现普通算法功能的基础上,能在噪声密度较大的图像去噪试验中,取得优于传统算法的实验效果。

5.2 算法实现与原理分析

中值滤波在图像处理中广泛使用,是通过对数据的排序统计完成的。其算法的运行速度取决于像素点的个数,越简单的图像处理速度越快,其处理效果与滤波窗口的大小有紧密的联系。当图像比较简单,噪声的含量较少时,中值滤波是很好的完成滤波。当其密度较高时,传统的滤波算法不能大量的去除噪声,满足不了实际的去噪要求。

传统中值滤波算法在去除噪声的同时,对所有的像素点进行统一的处理,使原图像的信号点发生了改变,给图像造成了一定的影响。如果我们把噪声点和信号点弄清楚,对信号点不作处理或微处理,只对噪声点进行处理,那就可以大幅提高图像复原的程度。在对其他算法的研究中发现,图像像素与周围的信号点有着很大的相关性,其灰度值相近。而噪声点的灰度值与临近像素的值相差较大,远大于或远小于邻域值,通过这一发现我们可以提出新的噪声检测方法。

5.2.1 噪声检测

综合上述的考虑和分析,对图像噪声有了更明确的认识,我们暂时可以给噪声这样的判别标准:如果某点的灰度值为滤波窗口内的极值,即它的值为最大或者最小,那么该点为噪声点,反之灰度值处于极大和极小中间的点则是信号点。

对于信号S 和噪声N ,给出一个图像[Xij]去做噪声点检测,其中ij 表示像素点的位置。取窗口中心位置X ij ,并选取m ?n 的滤波窗口进行逐像素的扫描操作W[X ij ]。把它们的灰度值按大小排序,并找出中值med (W[X ij ]),输出后的图像为[Y ij ],即

??

???<<===max min ,max

X min ,ij ij ij ij X S Y X N X (5-1) 进一步的分析可知,在含噪声图像中,噪声点极有可能分布在图像灰度值的两端,即极大值端或极小值端。但是在内容较丰富的图像中,噪声的密度较大,处在像素值大小中间的像素不一定就是信号点,很有可能是噪声点。为了尽可能的去除噪声点,减少对图像噪声的漏检,提出了改进的判定条件:

???>->-∈其他

,max min ,X 11ij N T X I T X S ij ij (5-2) 算法的实现可按以下步骤:对图像中的像素灰度值进行大小排序可得:

min = min(W[X ij ]) max=max(W[X ij ]) (5-3)

?

??∈=其他,0)

(,1g N X ij ij (5-4) 其中g ij 表示噪声候选点。噪声点一般都满足上述条件,但有些正常的信号点也满足

上式。在像素进行排序后,在序列的两端可能存在图像边缘的细节点,对图像可能有重要的作用,不能盲目的对其进行滤除处理。于是给出噪声检测的另外一个条件 :

???=>-=其他,0)1(,12ij ij ij g I T M X f (5-5)

f ij 为噪声判断点,f ij 为1时表示X ij 是噪声点,为0则表示X ij 是信号点,其中M

为滤波窗口内像素点的均值。对表达式(5-2)中阈值T 1由实验确定,可以经过多次

试验,确定其较为准确的值。对于处理椒盐噪声,T 1测得的值在十到二十之间。通过

运算和实验可知,T 2值较大时,噪声密度较小,反之,图像内容较丰富时T 2取相对较

小的值。通过这种方式,对未受污染的像素点可以直接输出,无需进行去噪操作。

5.2.2 噪声去除

基于以上的分析,提出了更好的噪声点检测方法,为更好地将噪声去除,可以将检测出的噪声点和信号点区别分开,将窗口内的信号点全部取出放到新的集合中,这样可以获得更为准确的中值。因为不是使用包含噪声点在内的所有点去获取的中值,

相关主题
文本预览
相关文档 最新文档