图像去噪是信号处理的一个经典问题,传统的去噪方法多采用平均或线性法法进行,最经常使用到的就是维纳滤波,可是他的降噪效果并非很明显。小波分析法开辟了非线性降噪的先河,小波可以降噪得益于小波变换的如下特色:低熵性(小波系数稀松分布,使图像变换后的熵下降)、多分辨率特性(极好的刻画了信号的非平稳性)、去相关性(噪声在变换后有白化趋势,小波域更有利于去噪)spa
目前,主流的小波去噪方法主要集中在三个方面:基于小波变换模极大值降噪、基于相邻尺度小波系数相关性去燥、基于小波变换域阈值去噪(硬阈值与软阈值、全局阈值与局部自适应阈值)。code
1.二维信号的小波分解。选择一个小波和小波分解的层次N,而后计算信号s到第N层的分解。orm
2.对高频系数进行阈值量化,对于从1~N的每一层,选择一个阈值,并对这一层的高频系数进行软阈值量化处理。blog
3.二维小波重构it
<span style="font-size:18px;">clear all; load facets; subplot(221);image(X); colormap(map); xlabel('(a)原始图像'); axis square %产生含噪声图像 init=2055615866;randn('seed',init) x=X+50*randn(size(X)); subplot(222);image(x); colormap(map); xlabel('(b)含噪声图像'); axis square %下面进行图像的去噪处理 %用小波画数coif3对x进行2层小波分解 [c,s]=wavedec2(x,2,'coif3'); %提取小波分解中第一层的低频图像,即实现了低通滤波去噪 %设置尺度向量n n=[1,2]; %设置阈值向量p p=[10.12,23.28]; %对三个方向高频系数进行阈值处理 nc=wthcoef2('h',c,s,n,p,'s'); nc=wthcoef2('v',c,s,n,p,'s'); nc=wthcoef2('d',c,s,n,p,'s'); %对新的小波分解结构[nc,s]进行重构 x1=waverec2(nc,s,'coif3'); subplot(223);image(x1); colormap(map); xlabel('(c)第一次去噪后的图像'); axis square; xx=wthcoef2('v',nc,s,n,p,'s'); x2=waverec2(xx,s,'coif2');%图像的二维小波重构 subplot(2,2,4);image(x2); colormap(map); xlabel('(d)第二次消噪后图解'); axis square; </span>降噪结果:
<span style="font-size:18px;"><span style="font-size:18px;">clear all; load detfingr; subplot(131);image(X); colormap(map); xlabel('(a)原始图像'); axis square; init=255615866; randn('state',init); %添加随机值 x=X+20*randn(size(X)); subplot(132);image(x); colormap(map); xlabel('(b)含噪图像'); axis square; [thr,sorh,kep]=ddencmp('den','wv',x); %使用全局阈值选项进行图像消噪处理 xd=wdencmp('gbl',x,'sym5',2,thr,sorh,kep); subplot(133);image(xd) colormap(map); xlabel('(c)消噪图像'); axis square;</span><span style="font-size:24px;"> </span></span>降噪结果: