概述
小波Wvlt(Wavelet),“小波”就是小区域、长度有限、均值为0的波形。
所谓“小”是指它具有减衰性;而称之为“波”是它则是指它的动波动性,其振幅正负相间的震荡形式。
近似值:是大的缩放因子计算的系数,表示信号的低频分量。
细节值:是小的缩放因子计算的系数,表示信号的高频分量。
小波变换:可以表示成由低通滤波器和高通滤波器组成的一棵树。原始信号经过一对互补的滤波器组进行的分解称为一级分解,可以进行多级分解。
小波重构:利用信号的小波分解的系数还原出原始信号(IDWT离散小波逆变换)。为分分解的逆过程,先进行增采样,及在每两个数之间插入一个0,与共轭滤波器卷积,最后对卷求结果。
二维离散小波变换:是一维离散小波变换的推广,是将二维信号在不同尺度上的分解,得到原始信号的近似值和细节值。由于信号是二维的,因此分解也是二维的。分解的结果为:近似分量、水平细节分量、垂直细节分量和对角细节分量。
Matlab图像处理——dwt2()二维离散小波变换图像单层小波分解
%利用函数dwt2()实现图像单层小波分解及显示
close all; %关闭当前所有图形窗口
clear all; %清楚工作空间变量
clc; %清除命令行数据
X=imread('girl.bmp'); %读取图像
X=rgb2gray(X); %转换为灰度图像
[ca1,chd1,cvd1,cdd1] = dwt2(X,'bior3.7'); %进行单层小波分解
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor',[1 1 1])
figure %显示小波变换各个分量
subplot(141);
imshow(uint8(ca1)); %近似系数分量
title('近似分量')
subplot(1,4,2);
imshow(chd1); %细节系数的水平分量
title('细节水平分量')
subplot(1,4,3);
imshow(cvd1); %细节系数的垂直分量
title('细节垂直分量')
subplot(1,4,4);
imshow(cdd1); %细节系数的对角分量
title('细节对角分量')
figure
subplot(121),imshow(X); %显示原图
title('原图')
subplot(122),imshow([ca1,chd1;cvd1,cdd1]); %显示小波变换分量组合图像
title('小波变换分量组合图像')
Matlab图像处理——dwt2()实现图像的重构
%利用函数idwt2()实现图像的重构及显示
close all; %关闭当前所有图形窗口
clear all; %清楚工作空间变量
clc; %清除命令行数据
load woman; %读取待处理的图像数据
nbcol = size(map,1); %获取颜色映射的列数
[cA1,cH1,cV1,cD1] = dwt2(X,'db1'); %对图像数据x利用db1小波,进行单层图像分割
sX = size(X); %读取原图像大小
A0 = idwt2(cA1,cH1,cV1,cD1,'db4',sX); %用小波分解第一层系数进行重构
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像位置的默认设置
set(0,'defaultFigureColor',[1 1 1]) %修改图形背景颜色设置
subplot(131),imshow(uint8(X)); %显示原图像
title('原图像')
subplot(132),imshow(uint8(A0)); %显示重构后的图像
title('重构图像')
subplot(133),imshow(uint8(X-A0)); %显示差异图像
title('差异图像')
Matlab图像处理——利用函数upcoef2()实现图像多层小波重构及显示
%利用函数upcoef2()实现图像多层小波重构及显示
close all; %关闭当前所有图形窗口
clear all; %清楚工作空间变量
clc; %清除命令行数据
X=imread('flower.tif'); %读取图像
X=rgb2gray(X); %转换为灰度图像
[c,s] = wavedec2(X,2,'db4'); %对图像进行小波2层分解
siz = s(size(s,1),:); %提取第2层小波分解系数矩阵大小
ca2 = appcoef2(c,s,'db4',2); %提取第1层小波分解的近似系数
chd2 = detcoef2('h',c,s,2); %提取第1层小波分解的细节系数水平分量
cvd2 = detcoef2('v',c,s,2); %提取第1层小波分解的细节系数垂直分量
cdd2 = detcoef2('d',c,s,2); %提取第1层小波分解的细节系数对角分量
a2 = upcoef2('a',ca2,'db4',2,siz); %提取第1层小波分解的细节系数水平分量
hd2 = upcoef2('h',chd2,'db4',2,siz); %利用函数upcoef2()实现图像多层小波重构
vd2 = upcoef2('v',cvd2,'db4',2,siz);
dd2 = upcoef2('d',cdd2,'db4',2,siz);
A1=a2+hd2+vd2+dd2; %重构近似图像
[ca1,ch1,cv1,cd1] = dwt2(X,'db4'); %对图像进行小波单层图像分解
a1 = upcoef2('a',ca1,'db4',1,siz); %利用函数upcoef2()提取1层小波分解系数进行重构
hd1 = upcoef2('h',cd1,'db4',1,siz);
vd1 = upcoef2('v',cv1,'db4',1,siz);
dd1 = upcoef2('d',cd1,'db4',1,siz);
A0=a1+hd1+vd1+dd1; %重构近似图像
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像的默认设置
set(0,'defaultFigureColor',[1 1 1]) %修改图形背景颜色的设置
figure %显示2层分解重构后的分量
subplot(141),imshow(uint8(a2));
title('2层分解重构后的近似分量')
subplot(142),imshow(hd2);
title('2层分解重构后的细节水平分量')
subplot(143),imshow(vd2);
title('2层分解重构后的细节垂直分量')
subplot(143),imshow(dd2);
title('2层分解重构后的细节对角分量')
figure %显示单层分解重构后的分量
subplot(141),imshow(uint8(a1));
title('单层分解重构后的近似分量')
subplot(142),imshow(hd1);
title('单层分解重构后的细节水平分量')
subplot(143),imshow(vd1);
title('单层分解重构后的细节垂直分量')
subplot(143),imshow(dd1);
title('单层分解重构后的细节对角分量')
figure
subplot(131),imshow(X); %显示原图像
title('原图像')
subplot(132),imshow(uint8(A1)); %显示2层分解重构后的分量
title('2层分解重构后的近似图像')
subplot(133),imshow(uint8(A0)); %显示单层分解重构后的分量
title('单层分解重构后的近似图像')
Matlab图像处理——基于小波分解和小波阈值去噪实现图像去噪
%基于小波分解和小波阈值去噪实现图像去噪
close all; %关闭当前所有图形窗口
clear all; %清楚工作空间变量
clc; %清除命令行数据
load gatlin2; %装载并显示原始图像
init=2055615866;
randn('seed',init) %随机值
XX=X+2*randn(size(X)); %添加随机噪声
[c,l]=wavedec2(XX,2,'sym4'); %对图像进行清噪处理,用sym4小波函数对x进行两层分解
a2=wrcoef2('a',c,l,'sym4',2); %重构第二层图像的近似系数
n=[1,2]; %设置尺度向量
p=[10.28,24.08]; %设置阈值向量
nc=wthcoef2('t',c,l,n,p,'s'); %对高频小波系数进行阈值处理
mc=wthcoef2('t',nc,l,n,p,'s'); %再次对高频小波系数进行阈值处理
X2=waverec2(mc,l,'sym4'); %图像的二维小波重构
set(0,'defaultFigurePosition',[100,100,1000,500]); %修改图形图像的默认设置
set(0,'defaultFigureColor',[1 1 1]) %修改图形背景颜色的设置
figure
colormap(map)
subplot(131),image(XX),axis square; %显示含噪声的图像
title('含噪声的图像')
subplot(132),image(a2),axis square; %显示小波分解去噪后的图像
title('小波分解去噪后的图像')
subplot(133),image(X2),axis square; %小波阈值去噪后的图像
title('小波阈值去噪后的图像')
ps=sum(sum((X-mean(mean(X))).^2)); %计算信噪比
pn=sum(sum((a2-X).^2));
disp('利用小波二层分解去噪的信噪比')
snr1=10*log10(ps/pn)
disp('利用小波阈值去噪的信噪比')
pn1=sum(sum((X2-X).^2));
snr2=10*log10(ps/pn1)
最后
以上就是爱听歌龙猫为你收集整理的图像的小波变换处理(二)Matlab处理的全部内容,希望文章能够帮你解决图像的小波变换处理(二)Matlab处理所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复