1.前言:
图像去噪是信号处理的一个经典问题,传统的去噪方法多采用平均或线性法法进行,最常用到的就是维纳滤波,但是他的降噪效果并不是很明显。小波分析法开辟了非线性降噪的先河,小波能够降噪得益于小波变换的以下特点:低熵性(小波系数稀松分布,使图像变换后的熵降低)、多分辨率特性(极好的刻画了信号的非平稳性)、去相关性(噪声在变换后有白化趋势,小波域更有利于去噪)
目前,主流的小波去噪方法主要集中在三个方面:基于小波变换模极大值降噪、基于相邻尺度小波系数相关性去燥、基于小波变换域阈值去噪(硬阈值与软阈值、全局阈值与局部自适应阈值)。
2.小波图像去燥实现的步骤:
1.二维信号的小波分解。选择一个小波和小波分解的层次N,然后计算信号s到第N层的分解。
2.对高频系数进行阈值量化,对于从1~N的每一层,选择一个阈值,并对这一层的高频系数进行软阈值量化处理。
3.二维小波重构
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>
降噪结果:
