?? yasuo.m
字號:
%圖像壓縮部分程序
clear all;
load woman;
x=X(100:200,100:200);
%對小波包db2對原始圖像進(jìn)行2層小波分解
%使用默認(rèn)熵shannon
t=wpdec2(x,2,'db2');
%畫出小波包的四叉樹
plot(t);
%計算最優(yōu)小波包樹
tree= besttree(t);
%畫出最優(yōu)小波包樹
plot(tree);
%提取小波包第一層結(jié)點的系數(shù)
cfs0=wpcoef(t,[1 0]);
cfs1=wpcoef(t,[1 1]);
cfs2=wpcoef(t,[1 2]);
cfs3=wpcoef(t,[1 3]);
%估計噪聲標(biāo)準(zhǔn)差
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);
%重構(gòu)小波包第一層結(jié)點
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];
%提取小波包第二層結(jié)點的系數(shù)
cfs20=wpcoef(t,[2 0]);
%重構(gòu)小波包第二層結(jié)點
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('重構(gòu)第一層后的圖像');
subplot(2,2,3);
image(wcodemat(rcfs0,nbc));
title('第一次壓縮后的圖像');
subplot(2,2,4);
image(wcodemat(rcfs20,nbc));
title('第二次壓縮后的圖像');
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -