? t=1:N;
? sig=sin(0.03*t);
? figure(1);subplot(211);plot(t,sig); title('正弦信号'); ? % 叠加噪声 ? x=sig+randn(1,N);
? subplot(212);plot(t,x); title('含噪正弦信号'); ?
? % 一维小波分解,使用'haar'进行4层分解 ? [c,l]=wavedec(x,4,'haar'); ? % 重构第1-4层逼近信号 ? a4=wrcoef('a',c,l,'haar',4); ? a3=wrcoef('a',c,l,'haar',3); ? a2=wrcoef('a',c,l,'haar',2); ? a1=wrcoef('a',c,l,'haar',1); ? % 显示各层逼近信号 ? figure(2);
? subplot(411);plot(a4);ylabel('a4'); ? subplot(412);plot(a3);ylabel('a3'); ? subplot(413);plot(a2);ylabel('a2'); ? subplot(414);plot(a1);ylabel('a1');
? % 重构第1-4层细节信号 ? d4=wrcoef('d',c,l,'haar',4); ? d3=wrcoef('d',c,l,'haar',3); ? d2=wrcoef('d',c,l,'haar',2); ? d1=wrcoef('d',c,l,'haar',1); ? % 显示各层细节信号 ? figure(3);
? subplot(411);plot(d4);ylabel('d4');
5
? subplot(412);plot(d3);ylabel('d3'); ? subplot(413);plot(d2);ylabel('d2'); ? subplot(414);plot(d1);ylabel('d1');
6
2、使用小波对图像的降噪处理
对含有高斯白噪声的图像,使用sym4小波进行分解,再用阈值法进行降噪处理,最后重构图像,实现降噪目的。在下面的例子中,分别采用了软阈值和硬阈值两种方法,观察降噪后的图像并比较两种方法的优缺点。程序如下:
? % 装载原始图像
? I=imread('D:\\MATLAB7\\toolbox\\images\\imdemos\\cameraman.tif'); ? nbc=size(I,1); ? X = im2double(I); ? % 产生噪声图像 ? init=2055415866; ? randn('seed',init); ? x=X+randn(size(X))/10;
? % 使用 sym4 执行图像的2层小波分解 ? wname='sym4';lev=2;
? [c,l]=wavedec2(x,lev,wname); ? sigma_s=0.054779;
7
? % 图像降噪时,使用wbmpen 函数选择阈值 ? alpha=2;
? thr_s=wbmpen(c,l,sigma_s,alpha);
? % 使用软阈值和保存的低频信号,进行图像降噪 ? keepapp=1;
? xds=wdencmp('gbl',x,wname,lev,thr_s,'s',keepapp); ? sigma_h=0.062818;
? thr_h=wbmpen(c,l,sigma_h,alpha);
? % 使用硬阈值和保存的低频信号,进行图像降噪 ? xdh=wdencmp('gbl',x,wname,lev,thr_h,'h',keepapp); ? % 画出原始图像和降噪后的图像 ? figure(1);
? subplot(221);imshow(I,nbc);title('原始图像'); ? subplot(222);imshow(x);title('噪声图像'); ? subplot(223);imshow(xds);title('软阈值降噪图像'); ? subplot(224);imshow(xdh);title('硬阈值降噪图像'); 其图像如下:
8
观察上述图像可得以下结论:采用硬阈值降噪,可以很好的保留信号边缘等局部特征,但得到的估计小波系数连续性差;而采用软阈值降噪,得到的估计小波系数连续性好,容易处理,但会降低重构信号的精度,造成边缘模糊。
9
相关推荐: