matlab图像去噪算法设计(精)
利用Matlab进行图像去噪和图像增强

利用Matlab进行图像去噪和图像增强随着数字图像处理技术的不断发展和成熟,图像去噪和图像增强在各个领域都有广泛的应用。
而在数字图像处理的工具中,Matlab凭借其强大的功能和易于使用的特点,成为了许多研究者和工程师首选的软件之一。
本文将介绍如何利用Matlab进行图像去噪和图像增强的方法和技巧。
一、图像去噪图像去噪是指通过一系列算法和技术,将图像中的噪声信号去除或减弱,提高图像的质量和清晰度。
Matlab提供了多种去噪方法,其中最常用的方法之一是利用小波变换进行去噪。
1. 小波变换去噪小波变换是一种多尺度分析方法,能够对信号进行时频分析,通过将信号分解到不同的尺度上,实现对图像的去噪。
在Matlab中,可以使用"dwt"函数进行小波变换,将图像分解为低频和高频子带,然后通过对高频子带进行阈值处理,将噪声信号滤除。
最后通过逆小波变换将去噪后的图像重构出来。
这种方法能够有效抑制高频噪声,保留图像的细节信息。
2. 均值滤波去噪均值滤波是一种基于平均值的线性滤波方法,通过计算像素周围邻域内像素的平均值,替代原始像素的值来去除噪声。
在Matlab中,可以使用"imfilter"函数进行均值滤波,通过设置适当的滤波模板大小和滤波器系数,实现对图像的去噪。
二、图像增强图像增强是指通过一系列算法和技术,改善图像的质量、增强图像的细节和对比度,使图像更容易被观察和理解。
Matlab提供了多种图像增强方法,以下将介绍其中的两种常用方法。
1. 直方图均衡化直方图均衡化是一种通过对图像像素值的分布进行调整,增强图像对比度的方法。
在Matlab中,可以使用"histeq"函数进行直方图均衡化处理。
该函数能够将图像的像素值分布拉伸到整个灰度级范围内,提高图像的动态范围和对比度。
2. 锐化增强锐化增强是一种通过增强图像边缘和细节来改善图像质量的方法。
在Matlab中,可以使用"imsharpen"函数进行图像的锐化增强处理。
Matlab中的图像去噪方法探究

Matlab中的图像去噪方法探究引言:图像去噪是数字图像处理中一个重要的领域,通常被用于清除图像中的噪声,提高图像的质量。
Matlab作为最常用的科学计算软件之一,提供了众多图像去噪方法的实现。
本文将探究在Matlab环境下常用的图像去噪方法,包括均值滤波、中值滤波、小波去噪和Total Variation(TV)去噪等。
1. 均值滤波均值滤波是一种简单且常用的图像去噪方法。
其基本思想是通过计算像素周围邻域像素的平均值来减少噪声的影响。
在Matlab中,可以使用`imfilter`函数来实现均值滤波。
该函数通过对图像进行卷积操作,可以选择不同大小的滤波器来达到不同程度的去噪效果。
然而,均值滤波的缺点是会导致图像的细节模糊化,并且无法处理噪声的非高斯分布情况。
2. 中值滤波中值滤波是一种基于排序统计的图像去噪方法。
它的原理是通过对像素周围邻域像素进行排序,然后选择中间值作为输出像素的值。
与均值滤波相比,中值滤波能够更好地保留图像的细节信息。
Matlab中的`medfilt2`函数可以用于实现中值滤波。
需要注意的是,中值滤波对于椒盐噪声和脉冲噪声等非高斯分布噪声具有较好的去除效果,但对于高斯噪声等其他类型噪声的去噪效果相对较差。
3. 小波去噪小波去噪是一种基于小波变换的图像去噪方法,它通过将图像信号分解为不同频率的小波系数,然后根据小波系数的能量分布情况进行去噪处理。
在Matlab中,可以使用Wavelet Toolbox提供的函数来实现小波去噪。
其中,`wdenoise`函数可以根据设定的阈值对小波系数进行修正,从而实现图像去噪的效果。
由于小波去噪考虑了图像的频域特性,因此在去除噪声的同时能够尽可能地保留图像的细节信息。
4. Total Variation(TV)去噪Total Variation(TV)去噪是一种基于偏微分方程的图像去噪方法,它通过最小化图像的总变差来减少图像中的噪声。
在Matlab中,可以使用Image Processing Toolbox中的`imdenoise`函数来实现TV去噪。
matlab图像去噪课程设计

matlab图像去噪课程设计一、教学目标本课程的教学目标是使学生掌握Matlab图像去噪的基本原理和方法,培养学生运用Matlab进行图像去噪的实践能力。
具体目标如下:1.知识目标:(1)理解图像去噪的基本概念和原理;(2)熟悉常见的图像去噪算法;(3)掌握Matlab图像去噪的基本操作。
2.技能目标:(1)能够运用Matlab进行图像去噪的实践操作;(2)能够分析图像去噪的效果,并对算法进行优化;(3)能够阅读和理解相关的英文文献。
3.情感态度价值观目标:(1)培养学生对图像处理技术的兴趣和热情;(2)培养学生解决问题的能力和团队协作精神;(3)培养学生关注社会热点,将所学知识应用于实际问题的意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.图像去噪的基本概念和原理;2.常见的图像去噪算法;3.Matlab图像去噪的基本操作;4.图像去噪效果的分析与优化。
具体安排如下:第1周:图像去噪的基本概念和原理;第2周:常见的图像去噪算法;第3周:Matlab图像去噪的基本操作;第4周:图像去噪效果的分析与优化。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。
1.讲授法:用于讲解图像去噪的基本概念、原理和算法;2.案例分析法:通过分析实际案例,使学生更好地理解图像去噪的方法和技巧;3.实验法:让学生亲自动手进行实验,培养其实践操作能力。
四、教学资源本课程所需的教学资源包括:1.教材:《Matlab图像处理与应用》;2.参考书:《数字图像处理》;3.多媒体资料:相关教学视频和课件;4.实验设备:计算机、投影仪等。
以上教学资源将有助于实现本课程的教学目标,提高学生的学习效果。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:通过课堂参与、提问、讨论等方式评估学生的学习态度和积极性;2.作业:布置相关的图像去噪作业,评估学生对知识的掌握程度和实践能力;3.实验报告:评估学生在实验过程中的操作技能和分析能力;4.考试:期末进行闭卷考试,全面评估学生的知识掌握和应用能力。
Matlab图像去噪与图像增强技术解析

Matlab图像去噪与图像增强技术解析Matlab(Matrix Laboratory)是一种强大的数学软件,特别适用于科学与工程领域。
在图像处理方面,Matlab提供了丰富的函数和工具箱,可以用于图像的去噪和增强。
本文将对Matlab图像去噪和图像增强技术进行解析。
一、图像去噪技术图像去噪是图像处理中一个重要的环节,旨在去除图像中的噪声,提高图像的质量和细节。
Matlab提供了多种图像去噪的方法,包括均值滤波、中值滤波、高斯滤波和小波去噪等。
1. 均值滤波均值滤波是一种简单的线性滤波方法,通过计算邻域像素的平均值来去除噪声。
Matlab中可以使用函数`imfilter`来实现均值滤波。
下面是一个示例代码:```img = imread('noisy_image.jpg');filtered_img = imfilter(img, ones(3,3)/9);imshow(filtered_img);```2. 中值滤波中值滤波是一种非线性滤波方法,通过计算邻域像素的中值来去除噪声。
对于椒盐噪声等突发性噪声,中值滤波效果较好。
Matlab中可以使用函数`medfilt2`来实现中值滤波。
下面是一个示例代码:```img = imread('noisy_image.jpg');filtered_img = medfilt2(img, [3,3]);imshow(filtered_img);```3. 高斯滤波高斯滤波是一种基于高斯函数的线性滤波方法,可以有效地去除高斯噪声。
Matlab中可以使用函数`imgaussfilt`来实现高斯滤波。
下面是一个示例代码:```img = imread('noisy_image.jpg');filtered_img = imgaussfilt(img, 2);imshow(filtered_img);```4. 小波去噪小波去噪是一种基于小波变换的非线性滤波方法,可以提取图像的频域信息,并根据阈值去除噪声。
Matlab中的图像降噪算法与技术

Matlab中的图像降噪算法与技术摘要随着数字图像处理的快速发展,图像降噪成为实际应用中一个重要的问题。
在本文中,我们将探讨Matlab中的图像降噪算法与技术。
首先,我们将介绍图像降噪的基本原理和方法。
然后,我们将深入研究Matlab中常用的图像降噪算法,包括均值滤波、中值滤波、高斯滤波等。
最后,我们将讨论图像降噪的一些进一步扩展和应用。
一、图像降噪的基本原理和方法图像降噪是指通过一系列算法和技术,减少或去除数字图像中的噪声信号,以使图像更清晰、更易于识别和分析。
图像噪声主要来自于图片采集过程中的环境噪声、传感器噪声以及信号传输中的干扰等。
图像降噪的基本原理是通过对图像进行滤波处理,使噪声信号受到抑制,同时尽量保留图像的有用信息。
常用的图像降噪方法包括空域滤波和频域滤波。
空域滤波是指对图像的像素直接进行操作的滤波方法,例如均值滤波、中值滤波等。
频域滤波是指将图像转换到频域进行处理的滤波方法,例如傅里叶变换和小波变换。
二、Matlab中常用的图像降噪算法1. 均值滤波均值滤波是一种最简单、最常用的图像降噪方法。
它通过计算像素周围邻域内像素的平均值,将当前像素的值替换为该平均值。
在Matlab中,我们可以使用imfilter函数来实现均值滤波。
具体步骤如下:(1)读取图像,并将其转换为灰度图像。
(2)选择适当的滤波器大小和模板类型。
(3)使用imfilter函数进行滤波处理。
(4)显示并保存结果图像。
2. 中值滤波中值滤波是一种非线性图像滤波方法,它通过将像素周围邻域内像素的灰度值进行排序,然后选择中间值作为当前像素的灰度值。
这种方法对于椒盐噪声等脉冲性噪声有很好的抑制效果。
在Matlab中,我们可以使用medfilt2函数来实现中值滤波。
3. 高斯滤波高斯滤波是一种线性平滑滤波方法,它通过将像素周围邻域内的像素值与高斯函数进行加权平均来实现图像降噪。
在Matlab中,我们可以使用fspecial和imfilter函数来实现高斯滤波。
matlab去噪声方法

matlab去噪声方法MATLAB中去噪声的方法有很多,以下列举了一些常用的方法:1. 均值滤波:均值滤波是一种简单且有效的去噪声方法,它通过计算邻域内像素的平均值来减小噪声。
具体操作是创建一个与输入图像大小相同的零矩阵,然后遍历图像的每个像素,将邻域内的像素值求和,最后除以邻域内像素的数量,得到滤波后的像素值。
2. 中值滤波:中值滤波主要用于去除图像中的脉冲噪声和椒盐噪声。
该方法的核心思想是将图像中相邻像素的灰度值进行排序,然后取中间值作为滤波后的像素值。
3. 高斯滤波:高斯滤波是一种广泛应用于图像去噪的方法,它通过在图像上滑动一个高斯核函数来降低噪声。
高斯核函数的宽度决定了滤波的效果,宽度越大,去噪效果越明显,但同时也会导致图像变得模糊。
4. 双边滤波:双边滤波是一种基于邻域的滤波方法,它同时考虑了像素的空间距离和灰度差异。
通过在图像上滑动一个双边核函数,可以有效地去除噪声并保留图像的细节。
5. 基于小波变换的方法:小波变换可以将图像分解为不同尺度、方向和频率的子带,通过对子带的处理,可以有效地去除图像中的噪声。
常用的有小波分解、小波合成和小波去噪等方法。
6. 基于深度学习的方法:深度学习方法,如卷积神经网络(CNN)和循环神经网络(RNN),在图像去噪领域也取得了很好的效果。
通过训练神经网络,可以学习到图像的复杂特征,从而在去噪的同时保留图像的细节。
在MATLAB中实现这些方法,可以利用内置的图像处理函数或自行编写代码。
例如,使用imfilter函数实现均值滤波,使用im2double函数将图像转换为双精度值等。
同时,可以借助图像处理工具箱中的各种滤波器和图像读取、显示函数,如sobel、roberts、prewitt算子等,来实现特定的去噪效果。
【谷速软件】matlab源码-图像去噪算法

1、对于Circuit.jpg图像,这里采用中值滤波算法对其进行去噪。
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。
中值滤波器可以做到既去除噪声又能保护图像的边缘,从而获得较满意的复原效果,而且,在实际运算过程中不需要图象的统计特性,这也带来不少方便,但对一些细节多,特别是点、线、尖顶细节较多的图象不宜采用中值滤波的方法。
实现方法:1:通过从图像中的某个采样窗口取出奇数个数据进行排序2:用排序后的中值取代要处理的数据即可函数B=medfilt2(A,[M,N])实现对二维矩阵A的中值滤波,每一个输出像素包含输入图像中相应像素周围的M*N个相邻像素点的平均值,medfilt2 将图像的边缘用值为0的像素填补,同时用到了ordfilt2函数,该函数可进行二维统计顺序过滤。
当模板值为3时,虽然图像非常清楚,但明显有几个特别亮的点存在,若加大模板值,亮点的亮度减弱,图像的清晰度减弱,当中值滤波的模板选为7x7的时候椒盐噪声的处理效果最好,但是同时它也模糊了边缘的清晰度,因此使用了自适应中值滤波器,目的是为了区分椒盐噪声和边缘颜色的突变。
程序源代码:clearI=imread('E:\新建文件夹 \图像处理作业\Circuit.jpg');subplot(2,3,1),title('原图像'),xlabel('a'),imshow(I)subplot(2,3,1),imshow(I);title('原图像'),xlabel('a')J=medfilt2(I,'symmetric');subplot(2,3,2),imshow(J);title('3X3 中值滤波'),xlabel('b')K=medfilt2(I,[5,5],'symmetric');subplot(2,3,3),imshow(K);title('重复使用中值滤波'),xlabel('c')O=medfilt2(J,[5,5],'symmetric');subplot(2,3,4),imshow(O);title('5X5 中值滤波'),xlabel('d')O=medfilt2(J,[7,7],'symmetric');subplot(2,3,5),imshow(O);title('7X7 中值滤波'),xlabel('e')其处理后的图像为:2、对于图像boy_noisy.gif,这里采用巴特沃斯低通滤波器算法去噪即可得到很好的效果。
图像去噪matlab课程设计

图像去噪matlab课程设计一、教学目标本课程的教学目标是使学生掌握图像去噪的基本原理和方法,学会使用MATLAB软件进行图像去噪处理,提高学生的实际动手能力和创新能力。
1.了解图像去噪的基本概念和原理。
2.掌握常见的图像去噪方法,如均值滤波、中值滤波、高斯滤波等。
3.熟悉MATLAB软件的基本操作和图像处理函数。
4.能够运用MATLAB软件进行图像去噪处理。
5.能够根据图像特点选择合适的去噪方法。
6.能够对去噪效果进行评估和优化。
情感态度价值观目标:1.培养学生对图像处理技术的兴趣和热情。
2.培养学生解决问题的能力和团队合作精神。
二、教学内容本课程的教学内容主要包括图像去噪的基本原理、常用去噪方法以及MATLAB软件在图像去噪中的应用。
1.图像去噪基本原理:介绍图像去噪的定义、目的和意义,分析噪声的来源和特性。
2.常用去噪方法:讲解均值滤波、中值滤波、高斯滤波等常见去噪方法的理论基础和算法实现。
3.MATLAB软件应用:介绍MATLAB软件的基本操作和图像处理函数,示例演示如何使用MATLAB进行图像去噪处理。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。
1.讲授法:讲解图像去噪的基本原理和方法,引导学生理解去噪技术的重要性。
2.案例分析法:通过分析实际案例,使学生更好地理解和掌握去噪方法的应用。
3.实验法:安排实验环节,让学生亲自动手进行图像去噪处理,培养学生的实际操作能力。
4.讨论法:学生进行分组讨论,分享去噪方法和经验,促进学生之间的交流与合作。
四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选择合适的图像处理教材,为学生提供理论基础和参考资料。
2.参考书:提供相关的参考书籍,拓展学生的知识面。
3.多媒体资料:制作PPT课件,展示去噪实例和实验步骤,增强课堂教学的直观性。
4.实验设备:准备计算机和MATLAB软件,确保学生能够进行实验操作和练习。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像去噪典型算法及matlab实现希望得到大家的指点和帮助图像去噪是数字图像处理中的重要环节和步骤。
去噪效果的好坏直接影响到后续的图像处理工作如图像分割、边缘检测等。
图像信号在产生、传输过程中都可能会受到噪声的污染,一般数字图像系统中的常见噪声主要有:高斯噪声(主要由阻性元器件内部产生)、椒盐噪声(主要是图像切割引起的黑图像上的白点噪声或光电转换过程中产生的泊松噪声)等;目前比较经典的图像去噪算法主要有以下三种:均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。
有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。
中值滤波:基于排序统计理论的一种能有效抑制噪声的非线性平滑滤波信号处理技术。
中值滤波的特点即是首先确定一个以某个像素为中心点的邻域,一般为方形邻域,也可以为圆形、十字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中心像素灰度的新值,这里领域被称为窗口,当窗口移动时,利用中值滤波可以对图像进行平滑处理。
其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采用中值滤波。
很容易自适应化。
Wiener维纳滤波:使原始图像和其恢复图像之间的均方误差最小的复原方法,是一种自适应滤波器,根据局部方差来调整滤波器效果。
对于去除高斯噪声效果明显。
实验一:均值滤波对高斯噪声的效果I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');%读取图像J=imnoise(I,'gaussian',0,0.005);%加入均值为0,方差为0.005的高斯噪声subplot(2,3,1);imshow(I);title('原始图像');subplot(2,3,2); imshow(J);title('加入高斯噪声之后的图像');%采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波K1=filter2(fspecial('average',3),J)/255; %模板尺寸为3K2=filter2(fspecial('average',5),J)/255;% 模板尺寸为5K3=filter2(fspecial('average',7),J)/255; %模板尺寸为7K4= filter2(fspecial('average',9),J)/255; %模板尺寸为9subplot(2,3,3);imshow(K1);title('改进后的图像1');subplot(2,3,4); imshow(K2);title('改进后的图像2');subplot(2,3,5);imshow(K3);title('改进后的图像3');subplot(2,3,6);imshow(K4);title('改进后的图像4');PS:filter2用法fspecial函数用于创建预定义的滤波算子,其语法格式为:h = fspecial(type)h = fspecial(type,parameters)参数type制定算子类型,parameters指定相应的参数,具体格式为:type='average',为均值滤波,参数为n,代表模版尺寸,用向量表示,默认值为[3,3]。
type= 'gaussian',为高斯低通滤波器,参数有两个,n表示模版尺寸,默认值为[3,3],sigma表示滤波器的标准差,单位为像素,默认值为0.5。
type= 'laplacian',为拉普拉斯算子,参数为alpha,用于控制拉普拉斯算子的形状,取值范围为[0,1],默认值为0.2。
type= 'log',为拉普拉斯高斯算子,参数有两个,n表示模版尺寸,默认值为[3,3],sigma为滤波器的标准差,单位为像素,默认值为0.5type= 'prewitt',为prewitt算子,用于边缘增强,无参数。
type= 'sobel',为著名的sobel算子,用于边缘提取,无参数。
type= 'unsharp',为对比度增强滤波器,参数alpha用于控制滤波器的形状,范围为[0,1],默认值为0.2。
运行效果见图1:据我目测,使用均值滤波去噪(高斯噪声)效果选用的邻域半径越大效果越好,当然其代价也会更大,另外确切的去噪效果的好坏还需要用SNR等数据来度量。
实验二:二维自适应维纳滤波对高斯噪声的滤除效果I=imread('C:\Documents and Settings\Administrator\桌面\1.gif'); %读取图像J=imnoise(I,'gaussian',0,0.005); %加入均值为0,方差为0.005的高斯噪声K2=wiener2(J,[3 3]); %对加噪图像进行二维自适应维纳滤波K2=wiener2(J,[5 5]); %对加噪图像进行二维自适应维纳滤波K2=wiener2(J,[7 7]); %对加噪图像进行二维自适应维纳滤波K2=wiener2(J,[9 9]); %对加噪图像进行二维自适应维纳滤波subplot(2,3,1);imshow(I);title('原始图像');subplot(2,3,2);imshow(J);title('加噪图像');subplot(2,3,3);imshow(K1);title('恢复图像1');subplot(2,3,4);imshow(K2);title('恢复图像2');subplot(2,3,5);imshow(K3);title('恢复图像3');subplot(2,3,6);imshow(K4);title('恢复图像3');PS:维纳滤波的两个函数wiener2与deconvwnr都能够完成维纳滤波的功能,deconvwnr强调图象复原方面,wiener2强调图象空间域锐化的作用,其中J=wiener2(I,[m,n])返回有噪声图像I经过wierner(维纳)滤波后的图像,[m,n]指定滤波器窗口大小为m*n,默认值为3*3,J=wiener2(I,[m,n],noise)指定噪声的功率,[J,noise]=wiener2(I,[m,n])在图像滤波的同时,返回噪声功率的估计值noise。
imnoise的语法格式为J = imnoise(I,type)J = imnoise(I,type,parameters)其中J = imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。
参数type和parameters用于确定噪声的类型和相应的参数。
下面的命令是对图像1.gif分别加入高斯噪声、椒盐噪声和乘性噪声,其结果如图所示:实验三:对加入椒盐噪声的图像分别作均值、中值和维纳滤波I=imread(1.gif');J1=imnoise(I,'gaussian',0,0.02);J2=imnoise(I,'salt & pepper',0.02);J3=imnoise(I,'speckle',0.02);运行效果见图2I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');J=imnoise(I,'salt & pepper',0.02);%h=ones(3,3)/9;%产生3*3的全1数组%B=conv2(J,h);%卷积运算K2=filter2(fspecial('average',3),J)/255; %均值滤波模板尺寸为3K= medfilt2(J);%采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波K1=wiener2(J,[3 3]); %对加噪图像进行二维自适应维纳滤波subplot(2,3,1);imshow(I);title('原始图像');subplot(2,3,2);imshow(J);title('加噪图像');subplot(2,3,3);imshow(K2);title('均值滤波后的图像');subplot(2,3,4);imshow(K);title('中值滤波后的图像');subplot(2,3,5);imshow(K1);title('维纳滤波后的图像');PS:MATLAB中提供了卷积运算的函数命令conv2,其语法格式为:C = conv2(A,B)C = conv2(A,B)返回矩阵A和B的二维卷积C。
若A为ma×na的矩阵,B为mb×nb的矩阵,则C的大小为(ma+mb+1)×(na+nb+1)。
MATLAB图像处理工具箱提供了基于卷积的图象滤波函数filter2,filter2的语法格式为:Y = filter2(h,X)其中Y = filter2(h,X)返回图像X经算子h滤波后的结果,默认返回图像Y与输入图像X大小相同。
例如:其实filter2和conv2是等价的。
MATLAB在计算filter2时先将卷积核旋转180度,再调用conv2函数进行计算。
Fspecial函数用于创建预定义的滤波算子,其语法格式为:h = fspecial(type)h = fspecial(type,parameters)参数type制定算子类型,parameters指定相应的参数,具体格式为前文已有叙述。
ones产生全1数组,zeros产生全零数组。
ones(a,b)产生a行b列全1数组 ones(a)产生a行a列全1叔祖运行效果见图3:通过图3我们也可得出结论,即中值滤波对于去除椒盐噪声效果最好,而维纳滤波去除效果则较差。
中值滤波对于去除椒盐噪声效果明显,是因为椒盐噪声只在画面上的部分点随机出现,而中值滤波根据数据排序,将未被污染的点代替噪声点的值的概率较大,所以抑制效果好。
对点、线和尖顶较多的图像不宜采用中值滤波,因为一些细节点可能被当成噪声点。
实验四: 分别使用二维统计滤波对椒盐噪声和高斯噪声进行滤波I=imread('C:\Documents and Settings\Administrator\桌面\1.gif');J1=imnoise(I,'salt & pepper',0.004);subplot(2,3,1);imshow(I);title('原始图像');subplot(2,3,2);imshow(J1);title('加椒盐噪声后的图像');J= ordfilt2(J1,5,ones(3,4));% 进行二维统计顺序过滤subplot(2,3,3);imshow(J);title('椒盐噪声滤波后的图像');J2=imnoise(I,'gaussian',0,0.004);subplot(2,3,4);imshow(J2);title('加高斯噪声后的图像');J3= ordfilt2(J2,5,ones(3,4));subplot(2,3,5);imshow(J3);title('高斯噪声滤波后的图像'); PS:效果见图4:PS:MATLAB小波分析工具箱提供的用于图像去噪的函数有wrcoef2和wpdencmp,其语法格式分别为:X=wrcoef2(‘type’,C,S,’wname’)*xd,treed,datad,perf0,perfl2+=wpdencmp(x,sorh,N,’wname’,crit,par,keepapp)其中,X=wrcoef2(‘type’,C,S,’wname’)返回基于小波分解结构[C,S]的小波重构图像X。