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

来源:互联网 发布:周春芽绿狗 知乎 编辑:程序博客网 时间:2024/05/22 05:23

1.前言:

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

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

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

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

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

3.二维小波重构

3.小波系数阈值降噪

[cpp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:18px;">clear all;  
  2. load facets;  
  3. subplot(221);image(X);  
  4. colormap(map);  
  5. xlabel('(a)原始图像');  
  6. axis square  
  7. %产生含噪声图像  
  8. init=2055615866;randn('seed',init)  
  9. x=X+50*randn(size(X));  
  10. subplot(222);image(x);  
  11. colormap(map);  
  12. xlabel('(b)含噪声图像');  
  13. axis square  
  14. %下面进行图像的去噪处理  
  15. %用小波画数coif3对x进行2层小波分解  
  16. [c,s]=wavedec2(x,2,'coif3');  
  17. %提取小波分解中第一层的低频图像,即实现了低通滤波去噪  
  18. %设置尺度向量n  
  19. n=[1,2];  
  20. %设置阈值向量p  
  21. p=[10.12,23.28];  
  22. %对三个方向高频系数进行阈值处理  
  23. nc=wthcoef2('h',c,s,n,p,'s');  
  24. nc=wthcoef2('v',c,s,n,p,'s');  
  25. nc=wthcoef2('d',c,s,n,p,'s');  
  26. %对新的小波分解结构[nc,s]进行重构  
  27. x1=waverec2(nc,s,'coif3');  
  28. subplot(223);image(x1);  
  29. colormap(map);  
  30. xlabel('(c)第一次去噪后的图像');  
  31. axis square;  
  32. xx=wthcoef2('v',nc,s,n,p,'s');  
  33. x2=waverec2(xx,s,'coif2');%图像的二维小波重构  
  34. subplot(2,2,4);image(x2);  
  35. colormap(map);  
  36. xlabel('(d)第二次消噪后图解');  
  37. axis square;  
  38. </span>  
降噪结果:


4.全局软阈值降噪

[cpp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:18px;"><span style="font-size:18px;">clear all;  
  2. load detfingr;  
  3. subplot(131);image(X);  
  4. colormap(map);  
  5. xlabel('(a)原始图像');  
  6. axis square;  
  7. init=255615866;  
  8. randn('state',init);  %添加随机值  
  9. x=X+20*randn(size(X));  
  10. subplot(132);image(x);  
  11. colormap(map);  
  12. xlabel('(b)含噪图像');  
  13. axis square;  
  14. [thr,sorh,kep]=ddencmp('den','wv',x);   %使用全局阈值选项进行图像消噪处理  
  15. xd=wdencmp('gbl',x,'sym5',2,thr,sorh,kep);  
  16. subplot(133);image(xd)  
  17. colormap(map);  
  18. xlabel('(c)消噪图像');  
  19. axis square;</span><span style="font-size:24px;">  
  20. </span></span>  
降噪结果:

0 0
原创粉丝点击