大家好,又见面了,我是你们的朋友全栈君。
功能: 单级一维离散小波变换 句法:
代码示例:
%装载一维原始信号
load noissin;%带噪声的正弦信号
s=noissin(1:1000); %取信号的前1000个采样点
%画出原始信号的波形
subplot(411);plot(s); %函数subplot的作用是在标定位置上建立坐标系
title('原始信号');
%下面用haar小波函数进行一维离散小波变换
[ca1,cd1]=dwt(s,'haar');
subplot(4,2,3);plot(ca1); axis tight;%自动设置x轴和y轴的范围使图形区域正好占满整个显示空间
ylabel('haar(ca1)');
subplot(4,2,4);plot(cd1); axis tight;
ylabel('haar(cd1)');
%给定一个小波db2,计算与之相关的分解滤波器
[Lo_D,Hi_D]=wfilters('db2','d');
%用分解滤波器Lo_D,Hi_D计算信号s的离散小波分解系数
[ca2,cd2]=dwt(s,Lo_D,Hi_D);
subplot(4,2,5);plot(ca2); axis tight;
ylabel('db2(ca2)');
subplot(4,2,6);plot(cd2); axis tight;
ylabel('db2(cd2)');
结果显示:
代码示例:
load noissin; %装载信号
s=noissin(1:1000);
ls=length(s); %计算信号点的个数ls
%对s进行一维连续小波变换,把返回系数存到矩阵w中
w=cwt(s,[12.12,10.24,15.48,1.2,2:2:10],'db3','plot');
xlabel('时间');
ylabel('变换尺度');
title('对应于尺度a=12.12,10.24,15.48,1.2,2,4,6,8,10小波变换系数的绝对值');
结果显示:
功能: 单级逆离散一维小波变换 句法:
代码示例:
load noisdopp;% 装载信号
[A,D] = dwt(noisdopp,'sym4');%使用Symlet(symN)小波
x = idwt(A,D,'sym4');
max(abs(noisdopp-x))
运行结果:
代码示例:
load noisdopp;
[Lo_D,Hi_D,Lo_R,Hi_R] = wfilters('bior3.5');
%返回与正交或双正交小波wname关联的四个低通和高通、分解和重建滤波器。
[A,D] = dwt(noisdopp,Lo_D,Hi_D);
x = idwt(A,D,Lo_R,Hi_R);
max(abs(noisdopp-x))
运行结果:
功能: 扩展的伪彩色矩阵缩放折叠全部页面 句法:
代码示例:
X = [100 110 130;112 115 116;45 164 45];
disp(X);
Y = wcodemat(X);
disp(Y);
运行结果:
代码示例:
X = [100 110 255;112 115 116;45 164 45];
disp(X);
Y = wcodemat(X,150);
disp(Y);
运行结果:
代码示例:
X = imread('rabbit.jpg');
subplot(221);X = rgb2gray(X);imshow(X);
subplot(222);Y = wcodemat(X,150,'c');imshow(Y);
subplot(223);Y = wcodemat(X,150,'r');imshow(Y);
subplot(224);Y = wcodemat(X,150,'m');imshow(Y);
运行结果:
代码示例:
X = imread('girl.jpg');
subplot(221);X = rgb2gray(X);imshow(X);
subplot(222);Y = wcodemat(X,150,'r',0);imshow(Y);
subplot(223);Y = wcodemat(X,150,'r',5);imshow(Y);
subplot(224);Y = wcodemat(X,150,'r',-1);imshow(Y);
运行结果:
代码示例:
X = imread('rabbit.jpg');
X = rgb2gray(X);
[LoD,HiD] = wfilters('haar','d');%小波滤波器
[cA,cH,cV,cD] = dwt2(X,LoD,HiD,'mode','symh');
subplot(2,2,1);
imagesc(cA);%使用缩放颜色显示图像
colormap gray;%将当前图窗的颜色图设置为预定义的颜色图之一
title('Approximation')%近似系数矩阵
subplot(2,2,2);imagesc(cH);colormap gray;title('Horizontal');%水平系数矩阵
subplot(2,2,3);imagesc(cV);colormap gray;title('Vertical');%垂直系数矩阵
subplot(2,2,4);imagesc(cD);colormap gray;title('Diagonal')%对角系数矩阵
运行结果:
功能: 二维离散小波反变换 格式:
代码示例:
[X,map] = imread('girl.jpg');
X = rgb2gray(X);
[cA,cH,cV,cD]=dwt2(X,'haar');
Y=idwt2(cA,cH,cV,cD,'haar');%单尺度二维离散小波重构(逆变换)
subplot(1,2,1),imshow(X,map),title('原始图像');
subplot(1,2,2),imshow(Y,map),title('重构图像');
运行结果:
代码示例:
X = imread('rabbit.jpg');
X = rgb2gray(X);
[Lo_D,Hi_D]=wfilters('db2','d');
[cA,cH,cV,cD]=dwt2(X,Lo_D,Hi_D);
%单尺度二维离散小波重构(逆变换)
A=idwt2(cA,cH,cV,cD,Lo_D,Hi_D);
subplot(1,2,1);imshow(X);title('原图');
subplot(1,2,2),imshow(uint8(A)),title('重构图');
运行结果:
代码示例:
X = imread('rabbit.jpg');
X = rgb2gray(X);
[cA,cH,cV,cD]=dwt2(X,'haar');
%单尺度二维离散小波重构(逆变换)
A=idwt2(cA,[],[],[],'haar');
H=idwt2([],cH,[],[],'haar');
V=idwt2([],[],cV,[],'haar');
D=idwt2([],[],[],cD,'haar');
imshow(X);
figure;
subplot(2,2,1),imshow(uint8(A)),title('低频重构图');
subplot(2,2,2),imshow(uint8(H)),title('水平高频重构图');
subplot(2,2,3),imshow(uint8(V)),title('竖直高频重构图');
subplot(2,2,4),imshow(uint8(D)),title('对角高频重构图');
运行结果:
功能: 二维小波分解 句法:
代码示例:
I = imread('girl.jpg');
[C,S]=wavedec2(I,2,'haar');
disp(size(C));
disp(size(S));
运行结果:
代码示例:
I = imread('girl.jpg');
[LoD,HiD] = wfilters('haar','d');
[C,S]=wavedec2(I,2,LoD,HiD);
disp(size(C));
disp(size(S));
运行结果:
功能: 语法:
代码示例:
[X,map] = imread('girl.jpg');
X = rgb2gray(X);
[c,s]=wavedec2(X,2,'haar');%进行2尺度二维离散小波分解。分解小波函数haar
%多尺度二维离散小波重构(逆变换)
Y=waverec2(c,s,'haar');
figure;
subplot(1,2,1),imshow(X,map),title('原始图像');
subplot(1,2,2),imshow(Y,map),title('重构图像');
结果显示:
代码示例:
[X,map] = imread('girl.jpg');
X = rgb2gray(X);
[Lo_D,Hi_D]=wfilters('db2','d');
[c,s]=wavedec2(X,2,'haar');%进行2尺度二维离散小波分解
Y=waverec2(c,s,Lo_D,Hi_D);
figure;
subplot(1,2,1),imshow(X,map),title('原始图像');
subplot(1,2,2),imshow(Y,map),title('重构图像');
结果显示:
wavelet 小波 decomposition 分解 approximation 近似值 coefficient 系数 discrete 离散的 low-pass filter 低通滤波器 high-pass filter 高通滤波器 orthogonal 正交的
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163775.html原文链接:https://javaforall.cn