小波去噪MATLAB实现
第二章 图像小波去噪理论
第4章 医学图像小波去噪的MATLAB实现
4.1 小波基的确定
不同的小波基具有不同的时频特征,用不同的小波基分析同一个问题会产生不同的结果,故小波分析在应用中便存在一个小波基或小波函数的选取和优化问题。我们在应用中要把握小波函数的特征,根据应用需要,选择合适的小波基。在小波分析应用中要考查小波函数或小波基的连续性、正交性、对称性、消失矩、线性相位、时频窗口的中心和半径以及时频窗的面积等,这些特征关系到如何选择合适的小波基。本节选取了一些常见的小波基,首先固定小波分解层数和阈值,然后改变小波基,运行结果。通过计算峰值信噪比(PSNR)来判定哪个小波基对医学图像去噪效果好。
下表为不同小波基去噪前带噪图像的峰值信噪比(PSNR)和去噪后图像的峰值信噪比(PSNR),通过峰值信噪比对不同小波基的去噪效果进行评价,从而选出对图像去噪效果较好的小波基。
通过去噪效果图4-1和表4-1以及图像评价原则我们可以很容易选出对图像去噪效果好,而又很好的保持图像细节的小波基。从图4-1中我们可以看出选用sym3小波基去噪后噪声得到了明显的抑制,但是图像的细节被弱化了,读图有所影响。选用sym5小波基去噪后,噪声没有得到很好的抑制,而且图像细节已明显消损,对读图有所影响。选用coif2小波基对图像进行去噪后,噪声得到一定的抑制,图像的细节保持的也很好。选用coif5小波基对图像去噪后,图像细节明显消损,对读图有所影响。选用db2小波基对图像去噪后图像的噪声虽然得到抑制但细节变得模糊,很难辨别。选用db6小波基对图像进行去噪后,图像失真比较明显。综上所述,coif2小波基去噪效果很好,所以本次课程设计中我选择coif2小波基进行医学图像小波去噪方法研究。
相应小波变换语句:[c,s]=wavedec2(A,n,wname);
其中:wname为小波基变量,通过改变它来变换程序中运用的小波基。
n为小波分解层数
A为处理图像
4.2 分解层数的选择
在实际的小波图像去噪过程中,不同信号、不同信噪比下都存在一个去噪效果最好或接近最好的分解层数,分解层数对于去噪效果的影响很大。 通常分解层数过多,并且对所有的各层小波空间的系数都进行阈值处理会造成信号的信息丢失严重,去噪后的信噪比反而下降,同时导致运算量增大,使处理速度变慢。
分解层数过少则去噪效果不理想,信噪比提高不多。 因此分解层数的确定作为一个核心的问题需要解决。
本论文中通过对医学图像进行n层小波分解,从大量的实验数据可以看出层数超过十层后图像以很难辨别,我通过仿真实验对医学图像进行了1-6层小波分解,确定小波基为coif2。仿真实验结果如图4-2所示:
不同分解层数图像去噪效果不同,从上面图中我们就可以看出,为了更有说服力
由图4-3可知由本文研究方法确定的最佳分解层数分别为2和3,在没达到此分解层数之前,分解层数对去噪结果的影响是很大的,去噪后信号的信噪比随着分解层数的增加而迅速增加,在超过这个层数之后,去噪后信号的信噪比要么没有太大的变化,要么就会有较大的下滑,由此需要确定一个合适的分解层数才能达到较好的去噪效果。
综上所述:通过图4-2、表4-2、图4-3的综合评价,我们选取分解层数为2层进行我们后续的研究,力求使我们研究的方法去噪效果更好。
以下是相应的仿真程序
clear; % 清理工作空间
I=imread ('mm、bmp'); %装载原始图像
X1=rgb2gray(I);
X=double(X1);
[m,n]=size(X);
x=imnoise(X1,'gaussian',0、02); %加入高斯噪声
%分层阈值处理
for i=1:6
[c,s]=wavedec2(x,i,'coif2'); % i层小波分解
[thr3,nkeep3]=wdcbm2(c,s,2);% 提取i层阈值
Duo(:,:,i)=wdencmp('lvd',c,s,'coif2',i,thr3,'h');% i层小波去噪
psnr(i)=10*log10(m*n*max(max(X^2))/sum(sum((double(X)-double(Duo(:,:,i)))、^2)));
% i层小波去噪后图像的峰值信噪比
end
% 显示各层去噪后图像
for i=1:6
figure,
imshow(Duo(:,:,i),[])
end
figure,
plot(psnr)
axis([0 6 5 25])