MATLAB仿真实现图像去噪

MATLAB仿真实现图像去噪
摘要
数字图像处理是⼀门新兴技术,随着计算机硬件的发展,其处理能⼒的不断增强,数字图像的实时处理已经成为可能。由于数字图像处理的各种算法的出现,图像处理学科在飞速发展的同时逐渐向其他学科交叉渗透。数字图像处理是⼀种通过计算机采⽤⼀定的算法对图形图像进⾏处理的技术。这种处理技术已经在各个领域上都有了⽐较⼴泛的应⽤。图像去噪是数字图像处理中的重要环节和步骤。去噪效果的好坏直接影响到后续的图像处理⼯作
关键词:MATLA、仿真、 噪声滤波
关键词:
图像信号在产⽣、传输过程中都可能会受到噪声的污染,⼀般数字图像系统中的常见噪声主要有:⾼斯噪声(主要由阻性元器件内部产⽣)、椒盐噪声(主要是图像切割引起的⿊图像上的⽩点噪声或光电转换过程中产⽣的泊松噪声)等;⽬前⽐较经典的图像去噪算法主要有以下三种:均值滤波算法:也称线性滤波,主要思想为邻域平均法,即⽤⼏个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进⾏改进,主要避开对景物边缘的平滑处理。中值滤波:基于排序
统计理论的⼀种能有效抑制噪声的⾮线性平滑滤波信号处理技术。中值滤波的特点即是⾸先确定⼀个以某个像素为中⼼点的邻域,⼀般为⽅形邻域,也可以为圆形、⼗字形等等,然后将邻域中各像素的灰度值排序,取其中间值作为中⼼像素灰度的新值,这⾥领域被称为窗⼝,当窗⼝移动时,利⽤中值滤波可以对图像进⾏平滑处理。其算法简单,时间复杂度低,但其对点、线和尖顶多的图像不宜采⽤中值滤波。很容易⾃适应化。Wiener维纳滤波:使原始图像和其恢复图像之间的均⽅误差最⼩的复原⽅法,是⼀种⾃适应滤波器,根据局部⽅差来调整滤波器效果。对于去除⾼斯噪声效果明显。在信息化的社会⾥,图像在信息传播中所起的作⽤越来越⼤。所以,消除在图像采集和传输过程中⽽产⽣的噪声,保证图像受污染度最⼩,成了数字图像处理领域⾥的重要部分。
本⽂主要分析邻域平均法、中值滤波法、维纳滤波法及模糊⼩波变换法的图像去噪算法。⾸先介绍图像处理应⽤时的常⽤函数及其⽤法;其次详细阐述了四种去噪算法原理及特点;最后运⽤Matlab软件对⼀张含噪图⽚(含⾼斯噪声或椒盐噪声)进⾏仿真去噪,通过分析仿真结果得出:
⼀.均值滤波是典型的线性滤波,对⾼斯噪声抑制是⽐较好的;
⼆.中值滤波是常⽤的⾮线性滤波⽅法,对椒盐噪声特别有效;
三.维纳滤波对⾼斯噪声有明显的抑制作⽤;
1.1均值滤波的仿真
本实验选⽤平均法对含有⾼斯噪声的图⽚进⾏去噪,并⽤Matlab软件仿真。⾸先给图像加⼊均值为0,⽅差为0.02的⾼斯噪声,选择3×3模板去噪从仿真结果可以看出:邻域平均法实现起来很⽅便,适⽤于消除图像中的颗粒噪声,但需要指出这种⽅法既平滑了图像信号,同时使图像的细节部分变得模糊。由以上处理后的图像可以看到:邻域平均法消弱了图像的边缘,使图像变得有些模糊。如图1-1所⽰,均值滤波对⾼斯噪声的抑制是⽐较好的,但对椒盐噪声的抑制作⽤不好,如图1-2所⽰,椒盐噪声仍然存在,只不过被削弱了⽽已。为了改善均值滤波细节对⽐度不好、区域边界模糊的缺陷,常⽤门限法来抑制椒盐噪声和保护细⼩纹理,⽤加权法来改善图像的边界模糊,⽤选择平均的⾃适应技术来保持图像的边界。
1.2中值滤波的仿真
本节选⽤中值滤波法对含有⾼斯噪声的图像进⾏去噪,并⽤Matlab软件仿真。给图像加⼊均值为0,⽅差为0.02的⾼斯噪声,分别选择
3×3模板、5×5模板和7×7模板进⾏去噪⽽对于⾼斯噪声来说,如图1-3所⽰,虽然也有⼀些去噪效果,但效果不佳。由此可知,中值滤波法运算简单,易于实现,⽽且能较好地保护边界,但有时会失掉图像中的细线和⼩块区域。并且采⽤窗⼝的⼤⼩对滤波效果影响很⼤,窗⼝越⼤,图像去噪效果越好,但代价是模糊的程度越⼤。
1.3维纳滤波的仿真
从仿真结果可以看出:维纳滤波对⾼斯⽩噪声的图像滤波与邻域平均法⽐较, 滤波效果好,它⽐线性滤波器具有更好的选择性,可以更好地保存图像的边缘和⾼频细节信息。虽然,维纳滤波在⼤多数情况下都可以获得满意的结果,尤其对含有⾼斯噪声的图像。另外维纳滤波对于椒盐噪声去除效果却不尽⼈意,⼏乎没有效果。它不能⽤于噪声为⾮平稳的随机过程的情况,对于向量情况应⽤不⽅便。因此,维纳滤波在实际问题中应⽤不多。 从仿真结果可以看出:为验证本⽂算法的滤波效果,对加⼊不同噪声的图像进⾏了滤波测试。从视觉来看,⾃适应模糊⼩波变换算法在保持细节和去噪两⽅⾯效果最好。在平滑⾼斯噪声和有脉冲噪声的图像去噪效果都很显著。本算法相对于其它⼏种算法其效果都有明显的改进,既能够很好地消除噪声,⼜能够较好地保持图像边缘细节,⽽且算法简单,易于实现。⽬前使⽤⽐较⼴泛。
可以看出,不同的滤波器常对特定的噪声有较好的滤波效果,由于噪声种类众多,产⽣原因复杂,有时图像会受到不同噪声的影响,仅⽤⼀种滤波器不能获得全⾯的滤噪效。为此常⽤不同的空域噪声滤波器结合起来,发挥他们各⾃的优点,在图像去噪的研究上也仍旧有着巨⼤的进步空间。
Matlab图像去噪仿真结果如下图所⽰:
原图 ⾼斯噪声
均值
中值
中值 均值
椒盐维纳 椒盐维纳
参考程序:
⼀⼂
A = imread('C:\Users\qiang_000\Desktop\dog.jpg');%读⼊彩⾊图⽚
椒盐噪声B=rgb2gray(A);%把彩⾊图⽚转化成灰度图⽚,256级
B_gaosi=imnoise(B,'gaussian');%加⼊⾼斯噪声
h=fspecial('average',3);%fspecial函数⽤于预定义滤波器
A_junzhi=uint8(round(filter2(h,B)));%进⾏均值滤波
A_zhongzhi=medfilt2(B_gaosi,[7,7]);%进⾏中值滤波
A_weina=wiener2(B_gaosi,[7,7]);%进⾏维纳滤波
subplot(2,3,1);imshow(B);title('原灰度图像');
subplot(2,3,2);imshow(B_gaosi);title('加⼊⾼斯噪声后的图像');
subplot(2,3,3);imshow(A_junzhi);title('均值滤波后的图像');
subplot(2,3,4);imshow(A_zhongzhi);title('中值滤波后的图像');
subplot(2,3,5);imshow(A_weina);title('维纳滤波后的图像');
⼆、
A=imread('C:\Users\qiang_000\Desktop\dog.jpg');%读⼊彩⾊图⽚
B=rgb2gray(A);%把彩⾊图⽚转化成灰度图⽚,256级
B_jiaoyan=imnoise(B,'salt & pepper');
h=fspecial('average',3);%fspecial函数⽤于预定义滤波器
A_junzhi=uint8(round(filter2(h,B)));
%进⾏均匀滤波,filter2函数⽤于图像滤波,此处h是滤波参数(均值),B是要处理的图像,round为最近的整数,unit8为函数类型A_zhongzhi=medfilt2(B_jiaoyan,[7,7]);
%进⾏中值滤波,窗⼝越⼤处理效率越明显,但图像会越来越模糊,7*7的窗⼝⽐较合适
A_weina=wiener2(B_jiaoyan,[7,7]);
subplot(2,3,1);imshow(B);title('原灰度图像');
subplot(2,3,2);imshow(B_jiaoyan);title('加⼊椒盐噪声后的图像');
参考⽂献:
[1] 杨⽣,陈敏等.基于模糊技术的随机噪声消除算法[J].华南理⼯⼤学学报,2000,28(8):82-87.
[2] 杨晋⽣,蔡靖等.⼀种具有鲁棒性的基于⼩波变换的滤波⽅法[J].电⼦与信息学报,2002,24(3):413-417.
[3] 张磊,潘泉,张洪才等.⼩波域滤波阈值参数的选取[J].电⼦学报,2001,29(3):400-402.

本文发布于:2024-09-21 05:36:08,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/359074.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   噪声   滤波   算法   效果   椒盐   平均法   邻域
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议