(完整版)小波变换图像去噪MATLAB实现
- 格式:doc
- 大小:302.01 KB
- 文档页数:7
matlab小波去噪源码以下是一个简单的Matlab小波去噪的示例源码:matlab.% 加载待去噪的信号。
load('noisy_signal.mat'); % 假设信号保存为noisy_signal.mat文件中的一个变量。
% 设置小波去噪的参数。
wavelet = 'db4'; % 选择小波基函数,这里使用Daubechies 4小波。
level = 5; % 小波分解的层数。
threshold_rule = 'sqtwolog'; % 阈值选取规则,这里使用sqtwolog规则。
% 对信号进行小波分解。
[c, l] = wavedec(noisy_signal, level, wavelet);% 估计噪声水平。
sigma = median(abs(c)) / 0.6745;% 计算阈值。
threshold = sigma sqrt(2 log(length(noisy_signal))); % 应用软阈值。
c_denoised = wthresh(c, threshold_rule, threshold);% 重构去噪后的信号。
denoised_signal = waverec(c_denoised, l, wavelet);% 可视化结果。
subplot(2,1,1);plot(noisy_signal);title('原始信号');subplot(2,1,2);plot(denoised_signal);title('去噪后的信号');这段代码首先加载待去噪的信号,然后设置小波去噪的参数,包括选择小波基函数、小波分解的层数和阈值选取规则。
接下来,代码对信号进行小波分解,并估计噪声水平。
然后,计算阈值,并应用软阈值函数对小波系数进行去噪处理。
最后,通过小波重构得到去噪后的信号,并将原始信号和去噪后的信号进行可视化比较。
数字图像去噪典型算法及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]。
小波图像去噪及matlab实例图像去噪图像去噪是信号处理的一个经典问题,传统的去噪方法多采用平均或线性方法进行,常用的是维纳滤波,但是去噪效果不太好(维纳滤波在图像复原中的作用)。
小波去噪随着小波理论的日益完善,其以自身良好的时频特性在图像去噪领域受到越来越多的关注,开辟了用非线性方法去噪的先河。
具体来说,小波能够去噪主要得益于小波变换有如下特点:(1)低熵性。
小波系数的稀疏分布,使图像变换后的熵降低。
意思是对信号(即图像)进行分解后,有更多小波基系数趋于0(噪声),而信号主要部分多集中于某些小波基,采用阈值去噪可以更好的保留原始信号。
(2)多分辨率特性。
由于采用了多分辨方法,所以可以非常好地刻画信号的非平稳性,如突变和断点等(例如0-1突变是傅里叶变化无法合理表示的),可以在不同分辨率下根据信号和噪声的分布来消除噪声。
(3)去相关性。
小波变换可对信号去相关,且噪声在变换后有白化趋势,所以小波域比时域更利于去噪。
(4)基函数选择灵活。
小波变换可灵活选择基函数,也可根据信号特点和去噪要求选择多带小波和小波包等(小波包对高频信号再次分解,可提高时频分辨率),对不同场合,选择不同小波基函数。
根据基于小波系数处理方式的不同,常见去噪方法可分为三类:(1)基于小波变换模极大值去噪(信号与噪声模极大值在小波变换下会呈现不同变化趋势)(2)基于相邻尺度小波系数相关性去噪(噪声在小波变换的各尺度间无明显相关性,信号则相反)(3)基于小波变换阈值去噪小波阈值去噪是一种简单而实用的方法,应用广泛,因此重点介绍。
阈值函数选择阈值处理函数分为软阈值和硬阈值,设w是小波系数的大小,wλ是施加阈值后小波系数大小,λ为阈值。
(1)硬阈值当小波系数的绝对值小于给定阈值时,令其为0,而大于阈值时,保持其不变,即:(2)软阈值当小波系数的绝对值小于给定阈值时,令其为0,大于阈值时,令其都减去阈值,即:如下图,分别是原始信号,硬阈值处理结果,软阈值处理结果。
MATLAB小波变换信号去噪引言小波变换是一种多尺度分析方法,广泛应用于信号处理领域。
由于小波变换具有良好的时频局部性质,可以将信号分解为不同频率和时间分辨率的成分,因此被广泛应用于信号去噪领域。
本文将介绍如何使用MATLAB进行小波变换信号去噪的方法。
MATLAB中的小波变换在MATLAB中,可以使用Wavelet Toolbox中的wavedec函数进行小波分解,使用wrcoef函数进行重构。
具体步骤如下:1.导入待处理的信号数据。
2.选择适当的小波基函数和分解层数。
3.使用wavedec函数对信号进行小波分解,得到分解系数。
4.根据阈值方法对分解系数进行去噪处理。
5.使用wrcoef函数对去噪后的分解系数进行重构,得到去噪后的信号。
6.分析去噪效果并进行评估。
下面将逐步详细介绍这些步骤。
选择小波基函数和分解层数小波基函数的选择在小波分析中非常重要,不同的小波基函数适用于不同类型的信号。
常用的小波基函数有Daubechies小波、Haar小波、db2小波等。
根据信号的特点和分析需求,选择合适的小波基函数是非常重要的。
在MATLAB中,可以使用wname函数查看支持的小波基函数。
可以通过比较不同小波基函数的性能指标来选择合适的小波基函数。
常见的性能指标包括频率局部化、时频局部化和误差能量。
选择分解层数时,需要根据信号的特点和噪声的程度来决定。
一般而言,分解层数越高,分解的细节系数越多,信号的时间分辨率越高,但运算量也会增加。
小波分解使用wavedec函数对信号进行小波分解。
函数的输入参数包括待分解的信号、小波基函数名称和分解层数。
函数输出包括近似系数和细节系数。
[C, L] = wavedec(x, level, wname);其中,x是待分解的信号,level是分解层数,wname是小波基函数名称。
C是包含近似系数和细节系数的向量,L是分解的长度信息。
根据分解层数,可以将分解系数划分为不同频带的系数。
完整版)小波变换图像去噪MATLAB实现本论文旨在研究数字图像的滤波去噪问题,以提高图像质量。
数字图像处理(Digital Image Processing。
DIP)是指用计算机辅助技术对图像信号进行处理的过程。
DIP技术在医疗、艺术、军事、航天等图像处理领域都有着十分广泛的应用。
然而,图像的采集、获取、编码和传输的过程中,都存在不同程度被各种噪声所“污染”的现象。
如果图像被污染得比较严重,噪声会变成可见的颗粒形状,导致图像质量的严重下降。
因此,通过一些卓有成效的噪声处理技术后,尽可能地去除图像噪声,有利于进一步的对图像进行如特征提取、信号检测和图像压缩等处理。
小波变换处理应用于图像去噪外,在其他图像处理领域都有着十分广泛的应用。
小波定义为对给定函数局部化的新领域,小波可由一个定义在有限区域的函数Ψ(x)来构造,Ψ(x)称为母小波,或者叫做基本小波。
一组小波基函数,{Ψa,b(x)},可以通过缩放和平移基本小波来生成。
当a=2j和b=ia的情况下,一维小波基函数序列定义为Ψi,j(x)=2-j2Ψ2-jx-1.函数f(x)以小波Ψ(x)为基的连续小波变换定义为函数f(x)和Ψa,b(x)的内积。
在频域上有Ψa,b(x)=ae-jωΨ(aω)。
因此,本论文以小波变换作为分析工具处理图像噪声,研究数字图像的滤波去噪问题,以提高图像质量。
当绝对值|a|减小时,小波函数在时域的宽度会减小,但在频域的宽度会增大,同时窗口中心会向|ω|增大的方向移动。
这说明连续小波的局部变化是不同的,高频时分辨率高,低频时分辨率低,这是小波变换相对于___变换的优势之一。
总的来说,小波变换具有更好的时频窗口特性。
噪声是指妨碍人或相关传感器理解或分析图像信息的各种因素。
噪声通常是不可预测的随机信号。
由于噪声在图像输入、采集、处理和输出的各个环节中都会影响,特别是在输入和采集中,噪声会影响整个图像处理过程,因此抑制噪声已成为图像处理中非常重要的一步。
小波变换图像去噪方法MATLAB实现本文的主要工作是:(1)对各种传统的图像去噪方法用MATLAB实现,并进行对比,总结各种方法的优缺点。
(2)阐述小波变换的发展历程、思想、概念和基于小波变换图像去噪的基本方法。
(3)研究小波分解层数、小波基的选择对图像去噪结果的影响。
(4)用MATLAB编程实现基于小波变换的图像去噪,并计算处理后图像的SNR和MSE。
关键词:图像去噪;小波变换;小波基;分解层数小波阈值去噪的原理从数学角度看小波去噪问题的实质是寻找最佳映射,即寻找从实际信号空间到小波函数空间的最佳映射,从而将原始信号和噪声信号分开,得到原始信号的最佳恢复。
从信号学的角来看,小波去噪实质是一个信号滤波问题,它可以看成是特征提取和低通滤波功能的综合,它既具有传统低通滤波器的功能,还能在去噪后保留信号的特征,其等效框图如下所示:图 3.2 小波去噪等效框小波阈值去噪的步骤如下:(1)根据信号特点和消噪要求选择合适的基小波和分解层数,对含有的噪声信号f(k)作小波变换,得到一组小波系数w j,k 。
图像经过采样后得到一系列的矩阵,然后将图像转换到小波域,此时的图像可以分为一个低通分量LL 和三个高通分量(HL ,LH ,HH),三个高通分量中一个为高通分量部分,剩下两个为次高频部分。
分解过程如下所示:图3.3 图像分解过程f(t)为一维信号,对其进行N 点采样后的离散信号为f(n),N 取0,1,2,...,N-1 ,其小波变换为: Wf (j,k )=2−j 2∑f (n )φ(2−j N−1n=0n −k) (11)其中Wf(j,k)为小波系数,简记为w j,k 。
小波系数可以分为两类:第一类 小波系数仅仅由噪声经过小波变换得到的;第二类 小波系数由信号经过小波变换的来,其中包含有噪声变换的结果。
(2)对w j,k进行阈值处理后得到估计的小波系数ŵj,k,使得‖ŵj,k−u j,k‖尽可能的小。
【引言】1. 背景介绍:在实际工程和科研中,数据经常受到各种噪声的干扰,因此需要对数据进行降噪处理。
2. 目的和意义:降噪处理可以使得数据更加真实可靠,有利于后续的分析和应用。
【matlab 曲线降噪的方法】3. 小波变换简介:小波变换是一种时频分析的方法,可以将信号分解为不同尺度的成分,对于曲线降噪具有很好的效果。
4. matlab中的小波变换函数:matlab提供了丰富的小波变换函数,包括连续小波变换和离散小波变换,用户可以根据具体需求选择合适的函数进行数据处理。
【matlab 曲线降噪的实现步骤】5. 数据准备:首先需要准备需要处理的数据,可以是实验采集的曲线数据,也可以是从其他渠道获取的曲线信息。
6. 选择小波函数:根据数据的特点和需求,选择合适的小波函数进行变换,常用的小波函数包括Daubechies小波、Haar小波等。
7. 对数据进行小波变换:利用matlab提供的小波变换函数,对数据进行小波分解,得到不同尺度的小波系数。
8. 降噪处理:根据小波系数的大小和分布,可以采用阈值处理、软硬阈值处理等方法对小波系数进行滤波,实现曲线的降噪处理。
9. 重构数据:经过降噪处理后,需要利用小波系数重构原始数据,得到降噪后的曲线信息。
【matlab 曲线降噪的应用实例】10. 实验数据:以某地震波形数据为例,介绍如何利用matlab的小波变换函数进行曲线降噪处理。
11. 数据分析:对比降噪前后的波形数据,分析降噪处理的效果和优势。
12. 结果展示:通过图表展示降噪前后的数据对比,直观地展现曲线降噪的效果。
【matlab 曲线降噪的注意事项】13. 参数选择:在进行小波变换和降噪处理时,需要合理选择小波函数和参数,以及阈值处理的方式和大小。
14. 原理理解:对小波变换的原理和数据特点有一定的理解,有利于选择合适的方法和优化参数。
15. 实时调试:在实际应用中,可以通过反复调试和对比分析来确定最佳的处理方案,实现最佳的降噪效果。
图像⼩波变换去噪——MATLAB实现clear;[A,map]=imread('C:\Users\wangd\Documents\MATLAB\1.jpg');X=rgb2gray(A);%画出原始图像subplot(2,2,1);imshow(X);title('原始图像');%产⽣含噪图像x=imnoise(X ,'gaussian',0,0.003);%画出含噪图像subplot(2,2,2);imshow(x);title('含噪声图像');%下⾯进⾏图像的去噪处理%⽤⼩波函数sym4对x进⾏2层⼩波分解[c,s]=wavedec2(x,2,'sym4');%提取⼩波分解中第⼀层的低频图像,即实现了低通滤波去噪a1=wrcoef2('a',c,s,'sym4'); % a1为double型数据;%画出去噪后的图像subplot(2,2,3); imshow(uint8(a1)); % 注意 imshow()和image()显⽰图像有区别,imshow()不能显⽰double型数据,必须进⾏转换 uint8(a1);title('第⼀次去噪图像'); % 并且image() 显⽰图像有坐标;%提取⼩波分解中第⼆层的低频图像,即实现了低通滤波去噪%相当于把第⼀层的低频图像经过再⼀次的低频滤波处理a2=wrcoef2('a',c,s,'sym4',2);%画出去噪后的图像subplot(2,2,4); imshow(uint8(a2)); %image(a2);title('第⼆次去噪图像');%保存图像imwrite(x,'C:\Users\wangd\Desktop\2.jpg');imwrite(uint8(a1),'C:\Users\wangd\Desktop\3.jpg'); %imwrite()保存图像,也需要将数据类型转化为uint8imwrite(uint8(a2),'C:\Users\wangd\Desktop\4.jpg');。
Matlab工具箱做小波音频图像压缩去噪信计12 徐文豪21109020391.matlab小波工具箱简介利用Matlab小波工具箱可以便利地做音频和图像的压缩和去噪,其操作界面如下图所示:其中”Wavelet 1-D”用来做音频的压缩和去噪,”wavelet 2-D”用来做图像的压缩和去噪。
具体操作时,可以选择不同的正交小波基和分解层次。
2.音频压缩2.1 音频压缩流程图值得一提的是,如果想要压缩的不是wav信号,比如mp3文件,可以先用格式转换工具,比如FormatFactory将其转换为wav信号。
2.2 音频解压流程图2.3 音频压缩效果比较考虑到正交小波基种类繁多,因而只比较较常用的haar、db和sym。
(1)量化音频压缩效果为了比较用不同正交小波基在不同分解层次下的压缩效果,有必要做一些量化处理。
考虑到,对同一音频信号,在取0率相同的情况下,压缩效果越好的正交小波基,其能量保留的应该越多。
因而,可先固定取0率,然后以能量保留百分比作为压缩效果的衡量指标。
(2)不同分解层次音频压缩效果比较不失一般性,考虑db4在取0率为95%的情况下在不同分解层次下的压缩效果,结果如下图:从图中可以看出,压缩效果随着分解层次的增加而增大,且增大速度先快后慢,最终压缩效果趋于稳定。
从理论上看,分解层次越多,出现小系数比率就越大,因而实验所得结果是与理论相符的。
可惜的是,在分解层次小于5时,可能是因为压缩效果已经太差,小波工具箱没给出其取0率为95%的情况,不然图像可以更加细致。
然而,也不能说分解层次越多越好,因为随着分解层次的增加,用于压缩和解压的时间会明显增加,因而这需要有一个折中。
(3)不同连续等级音频压缩效果比较对同种正交小波基,在分解层次固定时,可以比较不同连续等级对压缩效果的影响,考虑分解层次为5,取0率为95%,连续等级从1到7的db小波,结果如下图所示:从图中可以看出,随着小波基越来越连续,压缩效果是逐渐变大的,但增长速度也是先快后慢,且最终趋于平稳。
用matlab语言实现图像的小波消噪摘要本文实现了利用小波分解重构对图像进行消噪。
本次设计针对椒盐噪声,因此在滤波上,采取了对椒盐噪声最有效地中值滤波作为比较,同时采用不同类型不同噪声密度的图像上进行测试。
在消噪结果的评价上,采用PSNR以及边缘检测等进行比较。
该实验结果显示利用小波对于图像的消噪在一定程度上提高消噪效果。
关键词:小波消噪椒盐噪声中值滤波PSNR边缘检测Image Denoising in the Presence of Salt-and-Pepper Noise with MatlabAbstract:This article realize image denoising that using wavelet decomposition and reconstruction. The design for the salt and pepper noise, so take on median filter as a comparison, it is the most effective filter. I also use different noise of different types noise to testing. Using PSNR and edge detection in the evaluation of the results. The implementation show that wavelet denoising improve noise cancellation to some extent.Key words:wavelet denoising salt and pepper noise median filter PSNRedge detection目录第一章引言 (5)第二章图像的噪声及去噪2.1噪声的定义和分类 (5)2.1.1噪声的特征 (5)2.1.2噪声的来源 (6)2.2噪声的模型 (6)2.3图像去噪 (7)2.3.1图像去噪的常用方法 (7)2.3.2中值滤波 (7)2.3.3维纳滤波 (11)第三章小波分析及去噪3.1小波概述 (12)3.1.1小波分析 (12)3.1.2小波的应用 (13)3.2基本小波变换 (14)3.3常见的小波 (16)3.4小波消噪 (17)3.5小波的分解与重构 (18)3.7去噪阈值选择 (19)第四章边缘检测及图像质量判断4.1边缘检测 (20)4.2图像质量评价标准 (22)第五章设计思路及软件流程5.1设计思路 (23)5.2软件流程图 (23)第六章仿真结果比较6.1仿真效果图 (25)6.2PSNR对比结果 (26)结论 (28)致谢语 (28)参考文献 (29)附录1:程序 (30)附录2:文献 (33)附录3:翻译 (46)第一章 引言实际应用中,图像信号的产生、处理和传输都不可避免地要受到噪声的干扰,为了后续更高层次的处理,很有必要对图像信号进行去噪。
基于小波图像去噪的MATLAB 实现一、 论文背景数字图像处理(Digital Image Processing ,DIP)是指用计算机辅助技术对图像信号进行处理的过程。
数字图像处理最早出现于 20世纪50年代,随着过去几十年来计算机、网络技术和通信的快速发展,为信号处理这个学科领域的发展奠定了基础,使得DIP 技术成为信息技术中最重要的学科分支之一。
在现实生活中,DIP 应用十分广泛,医疗、艺术、军事、航天等图像处理影响着人类生活和工作的各个方面。
然而,在图像的采集、获取、编码和传输的过程中,都存在不同程度被各种噪声所“污染”的现象。
如果图像被污染得比较严重,噪声会变成可见的颗粒形状,导致图像质量的严重下降。
根据研究表明,当一张图像信噪比(SNR)低于14.2dB 时,图像分割的误检率就高于0.5%,而参数估计的误差高于0.6%。
通过一些卓有成效的噪声处理技术后,尽可能地去除图像噪声,我们在从图像中获取信息时就更容易,有利于进一步的对图像进行如特征提取、信号检测和图像压缩等处理。
小波变换处理应用于图像去噪外,在其他图像处理领域都有着十分广泛的应用。
本论文以小波变换作为分析工具处理图像噪声,研究数字图像的滤波去噪问题,以提高图像质量。
二、 课题原理1.小波基本原理在数学上,小波定义为对给定函数局部化的新领域,小波可由一个定义在有限区域的函数()x ψ来构造,()x ψ称为母小波,(mother wavelet )或者叫做基本小波。
一组小波基函数,()}{,x b a ψ,可以通过缩放和平移基本小波 来生成:())(1,ab x a x b a -ψ=ψ (1) 其中,a 为进行缩放的缩放参数,反映特定基函数的宽度,b 为进行平移的平移参数,指定沿x 轴平移的位置。
当a=2j 和b=ia 的情况下,一维小波基函数序列定义为:()()1222,-ψ=ψ--x x j j j i (2) 其中,i 为平移参数,j 为缩放因子,函数f (x )以小波()x ψ为基的连续小波变换定义为函数f (x )和()x b a ,ψ的内积:()dx ab x a x f f x W b a b a )(1)(,,,-ψ=ψ=⎰+∞∞- (3) 与时域函数对应,在频域上则有: ())(,ωωa e a x j b a ψ=ψ- (4)可以看出,当|a|减小时,时域宽度减小,而频域宽度增大,而且()x b a ,ψ的窗口中心向|ω|增大方向移动。
这说明连续小波的局部是变化的,在高频时分辨率高,在低频时分辨率低,这便是它优于经典傅里叶变换的地方。
总体说来,小波变换具有更好的时频窗口特性。
2. 图像去噪综述所谓噪声,就是指妨碍人的视觉或相关传感器对图像信息进行理解或分析的各种因素。
通常噪声是不可预测的随机信号。
由于噪声影响图像的输入、采集、处理以及输出的各个环节,尤其是图像输入、采集中的噪声必然影响图像处理全过程乃至最终结果,因此抑制噪声已成为图像处理中极其重要的一个步骤。
依据噪声对图像的影响,可将噪声分为加性噪声和乘性噪声两大类。
由于乘性噪声可以通过变换当加性噪声来处理,因此我们一般重点研究加性噪声。
设f(x ,y)力为理想图像,n(x ,y)力为噪声,实际输入图像为为g(x ,y),则加性噪声可表示为:g(x ,y)= f(x ,y)+ n(x ,y), (5)其中,n(x ,y)和图像光强大小无关。
图像去噪的目的就是从所得到的降质图像以g(x ,y)中尽可能地去除噪声n(x ,y),从而还原理想图像f(x ,y)。
图像去噪就是为了尽量减少图像的均方误差,提高图像的信噪比,从而尽可能多地保留图像的特征信息。
图像去噪分为时域去噪和频域去噪两种。
传统图像去噪方法如维纳滤波、中值滤波等都属于时域去噪方法。
而采用傅里叶变换去噪则属于频域去噪。
这些方法去噪的依据是一致的,即噪声和有用信号在频域的不同分布。
我们知道,有用信号主要分布于图像的低频区域,噪声主要分布在图像的高频区域,但图像的细节信息也分布在高频区域。
这样在去除高频区域噪声的同时,难免使图像的一些细节也变得模糊,这就是图像去噪的一个两难问题。
因此如何构造一种既能降低图像噪声,又能保留图像细节特征的去噪方法成为图像去噪研究的一个重大课题。
3. 小波阈值去噪法3.1小波变换去噪的过程小波去噪是小波变换较为成功的一类应用,其去噪的基本思路可用框图3-1来概括,即带噪信号经过预处理,然后利用小波变换把信号分解到各尺度中,在每一尺度下把属于噪声的小波系数去掉,保留并增强属于信号的小波系数,最后再经过小波逆变换恢复检测信号。
图3-1小波去噪框图因此,利用小波变换在去除噪声时,可提取并保存对视觉起主要作用的边缘信息。
而传统的傅立叶变换去噪方法在去除噪声和边沿保持上存在着矛盾,原因是傅立叶变换方法在时域不能局部化,难以检测到局域突变信号,在去除噪声的同时,也损失了图像边沿信息。
由此可见,与傅立叶变换去噪方法相比,小波变换去噪方法具有明显的优越性。
3.2小波阈值去噪的基本方法3.2.1阈值去噪原理Donoho提出的小波阈值去噪方法的基本思想是当w j,k小于某个临界阈值时,认为这时的小波系数主要是由噪声引起的,予以舍弃。
当w j,k大于这个临界阈值时,认为这时的小波系数主要是由信号引起,那么就把这一部分的w j,k直接保留下来(硬阈值方法),或者按某一个固定量向零收缩(软阈值方法),然后用新的小波系数进行小波重构得到去噪后的信号。
此方法可通过以下三个步骤实现:(1)先对含噪声信号f(t)做小波变换,得到一组小波分解系数w j,k。
(2)通过对分解得到的小波系数w j,k进行阈值处理,得出估计小波系数k j w,使得w j,k- u j,k,尽可能的小。
f,即为去噪(3)利用估计小波系数k j w,进行小波重构,得到估计信号了)(t之后的信号。
需要说明的是,在小波阈值去噪法中,最重要的是闭值函数和闲值的选取。
3.2.2阈值函数的选取阈值函数关系着重构信号的连续性和精度,对小波去噪的效果有很大影响。
目前,阈值的选择主要分硬阈值和软阈值两种处理方式。
其中,软阈值处理是将信号的绝对值与阈值进行比较,当数据的绝对值小于或等于阈值时,令其为零;大于阈值的数据点则向零收缩,变为该点值与阈值之差。
而硬阈值处理是将信号的绝对值阈值进行比较,小于或等于阈值的点变为零,大于阈值的点不变。
但硬阈值函数的不连续性使消噪后的信号仍然含有明显的噪声;采用软阈值方法虽然连续性好,但估计小波系数与含噪信号的小波系数之间存在恒定的偏差,当噪声信号很不规则时显得过于光滑。
4、基于小波变换的图像分解与重构二维离散小波主要解决二维多分辨率分析问题,如一幅二维离散图像{c(m,n)},二小波可以将它分解为各层各个分辨率上的近似分量cAj,水平方向细节分量cHj,垂直方向细节分量cVj,对角线方向细节分量cDj,其二层小波图像分解过程如图4-1 所示:图4-1 小波图像分解过程图4-2 小波图像分解过程其二层小波图像重构过程正好与此相反如图4-2所示,基于小波变换的图像处理,是通过对图像分解过程中所产生的近似分量与细节分量系数的调整,使重构图像满足特定条件,而实现图像处理。
三、程序实现图像消噪常用的图像去噪方法是小波阈值去噪法,它是一种实现简单而效果较好的去噪方法,阈值去噪方法的思想很简单,就是对小波分解后的各层稀疏模大于和小于某阈值的系数分别进行处理,然后利用处理后的小波系数重构出去噪后的图像。
在阈值去噪中,阈值函数体现了对小波分解稀疏的不同处理策略以及不同的估计方法,常用的阈值函数有硬阈值和软阈值函数,硬阈值函数可以很好的保留图像边缘等局部特征,但图像会出现伪吉布斯效应,等视觉失真现象,而软阈值处理相对较平稳,但可能会出现边缘模糊等失真现象,为此人们又提出了半软阈值函数。
小波阈值去噪方法处理阈值的选取,另一个关键因素是阈值的具体估计,如果阈值太小,去噪后的图像仍然存在噪声,相反如果阈值太大,重要图像特征又将被滤掉,引起偏差。
从直观上讲,对给定的小波系数,噪声越大,阈值就越大。
图像信号的小波去噪步骤与一维信号的去噪步骤完全相同,只使用二维小波分析工具代替了一维小波分析工具,如果用固定阈值形式,则选择的阈值用m2代替了一维信号中的n。
这三步是:1)二维信号的小波分解。
选择一个小波和小波分解的层次N,然后计算信号S到第N层的分解。
2)对高频系数进行阈值量化,对于从一到N 的每一层,选择一个阈值,并对这一层的高频系数进行软阈值化处理。
3)二维小波的重构,根据小波分解的第N层的低频系数和经过修改的从第一层到第N 层的高频系数,来计算二维信号的小波重构。
下面就通过具体实例来说明利用小波分析进行图像去噪的问题。
对给定图像进行去噪的二维小波去噪源程序:clear; % 清理工作空间load wbarb; % 装载原始图像subplot(221); % 新建窗口image(X); % 显示图像colormap(map); % 设置色彩索引图title('原始图像'); % 设置图像标题axis square; % 设置显示比例, 生成含噪图像并图示init=2055615866; % 初始值randn('seed',init); % 随机值XX=X+8*randn(size(X)); % 添加随机噪声subplot(222); % 新建窗口image(XX); % 显示图像colormap(map); % 设置色彩索引图title(' 含噪图像'); % 设置图像标题axis square; %用小波函数coif2对图像XX进行2层[c,l]=wavedec2(XX,2,'coif2'); % 分解n=[1,2]; % 设置尺度向量p=[10.28,24.08]; % 设置阈值向量, 对高频小波系数进行阈%nc=wthcoef2('h',c,l,n,p,'s');%nc=wthcoef2('v',c,l,n,p,'s');X1=waverec2(nc,l,'coif2'); % 图像的二维小波重构subplot(223); % 新建窗口image(X1); % 显示图像colormap(map); % 设置色彩索引图title(' 第一次消噪后的图像 '); % 设置图像标题axis square; %设置显示比例,再次对高频小波系数进行阈值处理%mc=wthcoef2('h',nc,l,n,p,'s');mc=wthcoef2('v',nc,l,n,p,'s');%mc=wthcoef2('d',nc,l,n,p,'s');X2=waverec2(mc,l,'coif2'); % 图像的二维小波重构subplot(224); % 新建窗口image(X2); % 显示图像colormap(map); % 设置色彩索引图title(' 第二次消噪后的图像 '); % 设置图像标题axis square; % 设置显示比例程序运行结果:原始图像5010015020025050100150200250含噪图像5010015020025050100150200250第一次消噪后的图像5010015020025050100150200250第二次消噪后的图像5010015020025050100150200250图5-1 去噪前后图像比较上图中几幅图像,可见第一次去早滤除了大部分的高频噪,但与原图比较,依然有不少的高频噪声,第二次去噪在第一次的去噪基础上,再次滤除高频噪声,去噪效果较好,但图像的质量比原图稍差。