⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yasuo.m

📁 本文主要是用matlab提供的小波包对图像进行分解、压缩、重构
💻 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 + -