小波的秘密8_图像处理应用:图像降噪

1.前言:

图像去噪是信号处理的一个经典问题,传统的去噪方法多采用平均或线性法法进行,最经常使用到的就是维纳滤波,可是他的降噪效果并非很明显。小波分析法开辟了非线性降噪的先河,小波可以降噪得益于小波变换的如下特色:低熵性(小波系数稀松分布,使图像变换后的熵下降)、多分辨率特性(极好的刻画了信号的非平稳性)、去相关性(噪声在变换后有白化趋势,小波域更有利于去噪)spa

目前,主流的小波去噪方法主要集中在三个方面:基于小波变换模极大值降噪、基于相邻尺度小波系数相关性去燥、基于小波变换域阈值去噪(硬阈值与软阈值、全局阈值与局部自适应阈值)。code

2.小波图像去燥实现的步骤:

1.二维信号的小波分解。选择一个小波和小波分解的层次N,而后计算信号s到第N层的分解。orm

2.对高频系数进行阈值量化,对于从1~N的每一层,选择一个阈值,并对这一层的高频系数进行软阈值量化处理。blog

3.二维小波重构it

3.小波系数阈值降噪

<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>
降噪结果:


4.全局软阈值降噪

<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>
降噪结果: