Matlab实现小波去噪

本文详细探讨了使用MATLAB进行小波去噪的实践,特别是针对医学图像。研究了不同小波基(如sym3, sym5, coif2, coif5, db2, db6)的影响,通过峰值信噪比(PSNR)评估去噪效果,发现coif2小波基表现最佳。此外,讨论了分解层数的选择,确定2层为最佳分解层数。最后,比较了软阈值、硬阈值和自适应阈值函数的去噪性能,推荐使用自适应阈值函数以取得更好的去噪结果。" 106353676,9420448,HiveSQL在支付与退款数据分析中的应用,"['大数据开发', 'Hive', '数据分析']
摘要由CSDN通过智能技术生成

小波去噪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])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值