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

📄 zbpiccomp.asv

📁 此程序主要是通过使用小波达到图像文件压缩的目的
💻 ASV
字号:

%%%%%%%%%读入图像信号
I=imread('girl.bmp');
figure;
imshow(I);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%第一次图像压缩
[cA1,cH1,cV1,cD1] = dwt2(I,'db1');
%[cA1,cH1,cV1,cD1] = dwt2(I,'harr');采用不同的小波函数
%[cA1,cH1,cV1,cD1] = dwt2(I,'bior3.7');
cA2=uint8(cA1);cH2=uint8(cH1);cV2=uint8(cV1);cD2=uint8(cD1);
C1=[cA2 cH2;cV2 cD2];
figure;
subplot(2,2,1);
imshow(cA2);
title('低频近似cA1');
subplot(2,2,2);
imshow(cH2);
title('水平细节cH1');
subplot(2,2,3);
imshow(cV2);
title('垂直细节cV1');
subplot(2,2,4);
imshow(cD2);
title('对角线细节cD1');
%高频置零
[M,N]=size(cA1);
%cH1=zeros(M,N);cV1=zeros(M,N);cD1=zeros(M,N);
% [cH1,k1]=thre(cH1,0);
% [cV1,k2]=thre(cV1,0);
% [cD1,k3]=thre(cD1,0);
[cH1,cV1,cD1,cpr]=thre2(cH1,cV1,cD1);
Isyn=idwt2(cA1,cH1,cV1,cD1,'db1');
%Isyn=idwt2(cA1,cH1,cV1,cD1,'harr');
%Isyn=idwt2(cA1,cH1,cV1,cD1,'bior3.7');

%imwrite(Isyn,'girl2.bmp');

% 第一次压缩后的信噪比
I1=double(I);
r1=snr(I1,Isyn);%必需转换成需要的double格式,否则无法使用log10函数

Isyn=uint8(Isyn);
figure;
imshow(Isyn);
title('第一次压缩后的图像');



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%第2次压缩
[cA3,cH3,cV3,cD3] = dwt2(cA1,'db1');
%[cA3,cH3,cV3,cD3] = dwt2(cA1,'harr');
%[cA3,cH3,cV3,cD3] = dwt2(cA1,'bior3.7');

cA4=uint8(cA3);cH4=uint8(cH3);cV4=uint8(cV3);cD4=uint8(cD3);
C2=[cA4 cH4;cV4 cD4];
figure;
imshow(cA4);
title('第二次小波变换后的低频近似cA3');
%高频置零
[M1,N1]=size(cA3);
%cH3=zeros(M,N);cV3=zeros(M,N);cD3=zeros(M,N);
[cH3,k1]=thre(cH3,0);
[cV3,k2]=thre(cV3,0);
[cD3,k3]=thre(cD3,0);
Isyn2=idwt2(cA3,cH3,cV3,cD3,'db1');
%imwrite(Isyn2,'girl2.bmp');
Isyn2=uint8(Isyn2);
figure;
imshow(Isyn2);
title('第2次压缩后的低频近似部分');


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%从图像上显示压缩过程
C1=[C2 cH2;cV2 cD2];
figure;
imshow(C1);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%计算信噪比

ca=idwt2(cA3,cH3,cV3,cD3,'db1');
Isyn3=idwt2(ca,cH1,cV1,cD1,'db1');
r2=snr(I1,Isyn3);% 第二次压缩后的信噪比

Isyn3=uint8(Isyn3);
imshow(Isyn3);
title('恢复后的图像');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -