📄 zy5.m
字号:
%使用的是标准分解
%标准分解:就是指首先使用一维小波对图像每一行的像素值进行变换,产生每一行像素的平均值和细节系数,
% 然后使用一维小波对这个经过行变换的图像的列进行换,产生这个图像的平均值和细节系数。
%最后生成的ARC即为所求。
A = [
64 2 3 61 60 6 7 57
9 55 54 12 13 51 50 16
17 47 46 20 21 43 42 24
40 26 27 37 36 30 31 33
32 34 35 29 28 38 39 25
41 23 22 44 45 19 18 48
49 15 14 52 53 11 10 56
8 58 59 5 4 62 63 1
];
ARC=A;
[m,n] = size(ARC);
%使用一维小波对图像每一 行 的像素值进行变换
for i=1:m
F=[ARC(i:i,1:n)];%把ARC的第i行赋给F,以下是对F进行一维小波变换。
M1=hf(8,8);%调用hf函数
F1=F*M1;
M2= hf(4,4);
F2= F1(1:4)*M2;
M3= hf(2,2);
F3= F2(1:2)*M3;
ARC(i:i,1:n)=[F3, F2(3:4), F1(5:8)];%最终生成的第i行赋给ARC相对应的行。
end
%使用一维小波对这个经过行变换的图像的列进行
for i=1:n
F=[ARC(1:m,i:i)];%把经过行变换的ARC第i列赋给F,以下是对F进行一维小波变换。
M1=hf(8,8);
F1=F'*M1;
M2= hf(4,4);
B1=F1(1:4);
F2= B1*M2;
M3= hf(2,2);
B2=F2(1:2);
F3= B2*M3;
ARC(1:m,i:i)=[F3, F2(3:4), F1(5:8)];%最终生成的第i列赋给ARC相对应的列。
end
%以下为用MATLAB来验证。
[a1 h1 v1 d1]=dwt2(A,'haar')
c1=[a1 v1;h1 d1] %将4个系数合并在一起
[a2 h2 v2 d2]=dwt2(a1,'haar')
c2=[a2 v2;h2 d2] %将4个系数合并在一起
[a3 h3 v3 d3]=dwt2(a2,'haar')
c3=[a3 v3;h3 d3] %将4个系数合并在一起
cc2=[c3 v2;h2 d2];
crc=[cc2 v1;h1 d1];%最终生成的结果
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -