📄 test.m
字号:
function pic=test(X)
%Usage:
%以下三句可作为
%[X,map]=imread('d:\matlabr11\yao\new_land\lena.bmp');
%X=X(1:128,1:128);
%scale为分解维数
scale=3;
scale2=0;
len1=0;len2=0;len3=0;len4=0;len5=0;
%load lena X;
%X=double(X);
t0=cputime;
[sizeM,sizeN]=size(X);
%分解三次
pic=wav_de3(X,scale);
disp('wave decomposition complete.');
[M,N]=size(pic);
%T为域值
T=2^ceil(log2(max(max(pic))))/2;
%ztc为零树编码函数,实际使用中可以根据视觉效果和psnr确定ztc和iztc次数
[codes1,len1,pic]=ztc(pic,scale,T);
[codes2,len2,pic]=ztc(pic,scale,T/2);
[codes3,len3,pic]=ztc(pic,scale,T/4);
[codes4,len4,pic]=ztc(pic,scale,T/8);
[codes5,len5,pic]=ztc(pic,scale,T/16);
disp('Zero tree code finished.');
%iztc为零树解码函数
pic=iztc(codes1,scale,T,M,N)+iztc(codes2,scale,T/2,M,N)+iztc(codes3,scale,T/4,M,N);
pic=pic+iztc(codes4,scale,T/8,M,N)+iztc(codes5,scale,T/16,M,N);
disp('Zero tree decode finished.');
%小波重构
pic=wave_com3(pic,scale);
disp('wave composition complete.');
%imshow(pic,[]);
%计算psnr
err_pic=double(X)-pic;
dila_pic=err_pic;
mae=((sum(sum(dila_pic.^2)))/(sizeM*sizeN))^0.5;
pnsr=20*log10(255/mae);
%计算小波零树编码压缩率
rate=sizeM*sizeN*8/(sum(sum(len1+len2+len3+len4+len5)));
%以下的pnsr用于静止图象的计算
%disp(['mae=',num2str(mae)]);
%disp(['pnsr=',num2str(pnsr)]);
%coifyao为k-l变换获得的压缩率
coifyao=(224*4*4)/(240*2+16);
%coifyao=(224*8*8)/(288*8+64);
%ratefind为非线性量化编码获得的压缩率
ratefind=findmy16;
%rate为总压缩率
rate=coifyao*2/(1/rate+1/ratefind);
disp(['Compress rate=',num2str(rate)]);
%imshow(pic,[]);
disp(['time=',num2str(cputime-t0)]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -