图像去噪基于小波变换(软阈值硬阈值半软阈值改进阈值)的图像去噪matlab源码

Posted Matlab走起

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像去噪基于小波变换(软阈值硬阈值半软阈值改进阈值)的图像去噪matlab源码相关的知识,希望对你有一定的参考价值。

一、简介

1974年,法国工程师J.Morlet首先提出小波变换的概念,1986年著名数学家Y.Meyer偶然构造出一个真正的小波基,并与S.Mallat合作建立了构造小波基的多尺度分析之后,小波分析才开始蓬勃发展起来。小波分析的应用领域十分广泛,在数学方面,它已用于数值分析、构造快速数值方法、曲线曲面构造、微分方程求解、控制论等。在信号分析方面的滤波、去噪声、压缩、传递等。在图像处理方面的图像压缩、分类、识别与诊断,去噪声等。本章将着重阐述小波在图像中的应用分析。
1 小波变换原理
小波分析是一个比较难的分支,用户采用小波变换,可以实现图像压缩,振动信号的分解与重构等,因此在实际工程上应用较广泛。小波分析与Fourier变换相比,小波变换是空间域和频率域的局部变换,因而能有效地从信号中提取信息。小波变换通过伸缩和平移等基本运算,实现对信号的多尺度分解与重构,从而很大程度上解决了Fourier变换带来的很多难题。
小波分析作一个新的数学分支,它是泛函分析、Fourier分析、数值分析的完美结晶;小波分析也是一种“时间—尺度”分析和多分辨分析的新技术,它在信号分析、语音合成、图像压缩与识别、大气与海洋波分析等方面的研究,都有广泛的应用。
(1)小波分析用于信号与图像压缩。小波压缩的特点是压缩比高,压缩速度快,压缩后能保持信号与图像的特征不变,且在传递中能够抗干扰。基于小波分析的压缩方法很多,具体有小波压缩,小波包压缩,小波变换向量压缩等。
(2)小波也可以用于信号的滤波去噪、信号的时频分析、信噪分离与提取弱信号、求分形指数、信号的识别与诊断以及多尺度边缘检测等。
(3)小波分析在工程技术等方面的应用概括的包括计算机视觉、曲线设计、湍流、远程宇宙的研究与生物医学方面。
2 多尺度分析
在这里插入图片描述
3 图像的分解和量化
在这里插入图片描述
4 图像压缩编码
在这里插入图片描述
5 图像编码评价
在这里插入图片描述

二、源代码

x1=imread('lena.bmp');%读入图像的值为无符号型unit8(),进行矩阵操作前必须先转换为矩阵运算所支持的double()双精度型。
figure(1);
subplot(2,2,1)
imshow(x1);
title('原图');
 
 
%添加高斯噪声
x2=imnoise(x1,'gaussian',0.01);
x1=double(x1);
subplot(2,2,2);
imshow(x2);
title('加噪后');
x3=double(x2);
%加噪后的信噪比
SNR=10*log(sum(x1.^2)/(sum((x3-x1).^2)))
[h0,h1]=wave1(x3);
%一次分解
[h00,h01]=wave1(h0');
[h10,h11]=wave1(h1');
 
% %软阈值去噪
[t]=Throld(h11);
% [Sh00]=Soft(h00,t);
[Sh01]=Soft(h01,t);
[Sh10]=Soft(h10,t);
[Sh11]=Soft(h11,t);
%图像重构
[S1]=revers1(h00,Sh01);
[S2]=revers1(Sh10,Sh11);
[S3]=revers1(S1',S2');
%软阈值去噪后的信噪比
SNRS=10*log(sum(x1.^2)/(sum((S3-x1).^2)))
y2=uint8(S3);
subplot(2,2,3)
imshow(y2);
title('软阈值去噪');
 
%半软半硬阈值去噪
% [HSh00]=HardSoft(h00,t);
[HSh01]=HardSoft(h01,t);
[HSh10]=HardSoft(h10,t);
[HSh11]=HardSoft(h11,t);
%图像重构
[HS1]=revers1(h00,HSh01);
[HS2]=revers1(HSh10,HSh11);
[HS3]=revers1(HS1',HS2');
%半软半硬阈值去噪后的信噪比
SNRHS=10*log(sum(x1.^2)/(sum((HS3-x1).^2)))
y3=uint8(HS3);
subplot(2,2,4)
imshow(y3);
title('半软半硬阈值去噪');
 
% %一次小波分解图像
T1=[h00',h01';h10',h11'];
y1=uint8(T1);
figure(2);
subplot(2,2,1);
imshow(y1);
title('一次分解');
 
% %一次硬阈值去噪
% [Hh00]=Hard(h00,t);
[Hh01]=Hard(h01,t);
[Hh10]=Hard(h10,t);
[Hh11]=Hard(h11,t);
%图像重构
[H1]=revers1(h00,Hh01);
[H2]=revers1(Hh10,Hh11);
[H3]=revers1(H1',H2');
%一次硬阈值去噪后的信噪比
SNRH1=10*log(sum(x1.^2)/(sum((H3-x1).^2)))
y4=uint8(H3);
subplot(2,2,2);
imshow(y4);
title('一次硬阈值去噪');
 
%二次硬阈值去噪
%二次分解
[h20,h21]=wave1(h00);
[h200,h201]=wave1(h20');
[h210,h211]=wave1(h21');
% %二次小波分解图像
T2=[h200',h201';h210',h211'];
T3=[T2',h01';h10',h11'];
y5=uint8(T3);
subplot(2,2,3);
imshow(y5);
title('二次分解');
[t1]=Throld(h211);
% [H200]=Hard(h200,t1);
[H201]=Hard(h201,t1);
[H210]=Hard(h210,t1);
[H211]=Hard(h211,t1);

三、运行结果

在这里插入图片描述
在这里插入图片描述

四、备注

完整代码或者仿真咨询添加QQ1575304183

以上是关于图像去噪基于小波变换(软阈值硬阈值半软阈值改进阈值)的图像去噪matlab源码的主要内容,如果未能解决你的问题,请参考以下文章

数字信号去噪基于matlab硬阈值软阈值半软阈值Maxmin阈值Garrote阈值小波变换心音去噪含Matlab源码 2064期

数字信号去噪基于matlab小波软阈值+硬阈值+改进的阈值高斯脉冲信号去噪含Matlab源码 1706期

数字信号去噪 基于matlab小波软阈值+硬阈值+改进阈值数字信号去噪含Matlab源码 1025期

数字信号去噪基于matlab小波软阈值+硬阈值+改进阈值数字信号去噪含Matlab源码 1025期

Matlab系列一维信号/数字图像小波阈值去噪(软阈值,硬阈值,固定阈值)

数字图像处理,一维信号小波阈值去噪的C++实现