📄 yasuo.m
字号:
%图像压缩部分程序
clear all;
load woman;
x=X(100:200,100:200);
%对小波包db2对原始图像进行2层小波分解
%使用默认熵shannon
t=wpdec2(x,2,'db2');
%画出小波包的四叉树
plot(t);
%计算最优小波包树
tree= besttree(t);
%画出最优小波包树
plot(tree);
%提取小波包第一层结点的系数
cfs0=wpcoef(t,[1 0]);
cfs1=wpcoef(t,[1 1]);
cfs2=wpcoef(t,[1 2]);
cfs3=wpcoef(t,[1 3]);
%估计噪声标准差
det1=[wpcoef(t,2) wpcoef(t,3) wpcoef(t,4)];
sigma=median(abs(det1(:)))/0.6745;
%选择压缩的阈值
alpha=1.1;
thr=wpbmpen(t,sigma,alpha);
keepapp=1;
nt=wpthcoef(t,keepapp,'s',thr);
%重构小波包第一层结点
rcfs0=wprcoef(nt,[1,0]);
rcfs1=wprcoef(nt,[1,1]);
rcfs2=wprcoef(nt,[1,2]);
rcfs3=wprcoef(nt,[1,3]);
c11=[rcfs0 rcfs1;rcfs2 rcfs3];
%提取小波包第二层结点的系数
cfs20=wpcoef(t,[2 0]);
%重构小波包第二层结点
rcfs20=wprcoef(t,[2,0]);
%画出原始图像和压缩后的图像
nbc=size(map,1);
colormap(pink(nbc));
subplot(2,2,1);
image(wcodemat(X,nbc));
title('原始图像');
subplot(2,2,2);
image(wcodemat(c11,nbc));
title('重构第一层后的图像');
subplot(2,2,3);
image(wcodemat(rcfs0,nbc));
title('第一次压缩后的图像');
subplot(2,2,4);
image(wcodemat(rcfs20,nbc));
title('第二次压缩后的图像');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -