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

📄 wavelet_fractal_compressor.m

📁 wavelet_fractal_compressor小波技术与分形技术相结合进行图像压缩
💻 M
📖 第 1 页 / 共 2 页
字号:
clc
clear
close all
ty = clock;

%%%%%%%%%%%%%%% You Must insert a picture in the "c:\cdna.tif" root which
%%%%%%%%%%%%%%% has more than 512 to 512 size
%%%%% you migh download such these picture from California University site
        
X=double((imread('c:\cdna.tif')));
X=imcrop(X,[80 80 511 511]);
%%%%%%%%%%%%%% Compressed Process  %%%%%%%%%%%%%%%%
[cA1,cH1,cV1,cD1] = dwt2( X,'Haar' );
[cA2,cH2,cV2,cD2] = dwt2(cA1,'Haar');
[cA3,cH3,cV3,cD3] = dwt2(cA2,'Haar');
[cA4,cH4,cV4,cD4] = dwt2(cA3,'Haar');
[cA5,cH5,cV5,cD5] = dwt2(cA4,'Haar');
[cA6,cH6,cV6,cD6] = dwt2(cA5,'Haar');
[M N]=size(cA1);

%%%%%%%%%%%%%%%%%%%%%%%%%%%  Search  %%%%%%%%%%%%%%%%%%%%%%%%%%%%
sizL1=8;
sizL2=4;
sizL3=2;
sizL4=1;

ss=-2;
iii=1
for k=0:31,    
jjj=1;
for h=0:31,  


for kk=0:15,    
for hh=0:15,

%%%%%%%%%%%%%%%%%%%%%%% S Calculation %%%%%%%%%%%%%%%%%%%%% sssV
sssV1(kk+1,hh+1)=sum(sum((cV2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1)...
    .*cV1(sizL1*k+1:sizL1*k+sizL1,sizL1*h+1:sizL1*h+sizL1) )))/sum(sum(...
    cV2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1).*cV2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1)));

sssV2(kk+1,hh+1)=sum(sum((cV3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2)...
    .*cV2(sizL2*k+1:sizL2*k+sizL2,sizL2*h+1:sizL2*h+sizL2) )))/sum(sum(...
    cV3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2).*cV3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2)));

sssV3(kk+1,hh+1)=sum(sum((cV4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3)...
    .*cV3(sizL3*k+1:sizL3*k+sizL3,sizL3*h+1:sizL3*h+sizL3) )))/sum(sum(...
    cV4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3).*cV4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3)));

sssV4(kk+1,hh+1)=sum(sum((cV5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4)...
    .*cV4(sizL4*k+1:sizL4*k+sizL4,sizL4*h+1:sizL4*h+sizL4) )))/sum(sum(...
    cV5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4).*cV5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4)));
  


%%%%%%%%%%%%%%%%%%%%%%% S Calculation %%%%%%%%%%%%%%%%%%%%% sssH
sssH1(kk+1,hh+1)=sum(sum((cH2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1)...
    .*cH1(sizL1*k+1:sizL1*k+sizL1,sizL1*h+1:sizL1*h+sizL1) )))/sum(sum(...
    cH2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1).*cH2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1)));

sssH2(kk+1,hh+1)=sum(sum((cH3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2)...
    .*cH2(sizL2*k+1:sizL2*k+sizL2,sizL2*h+1:sizL2*h+sizL2) )))/sum(sum(...
    cH3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2).*cH3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2)));

sssH3(kk+1,hh+1)=sum(sum((cH4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3)...
    .*cH3(sizL3*k+1:sizL3*k+sizL3,sizL3*h+1:sizL3*h+sizL3) )))/sum(sum(...
    cH4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3).*cH4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3)));

sssH4(kk+1,hh+1)=sum(sum((cH5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4)...
    .*cH4(sizL4*k+1:sizL4*k+sizL4,sizL4*h+1:sizL4*h+sizL4) )))/sum(sum(...
    cH5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4).*cH5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4)));


%%%%%%%%%%%%%%%%%%%%%%% S Calculation %%%%%%%%%%%%%%%%%%%%% sssD
sssD1(kk+1,hh+1)=sum(sum((cD2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1)...
    .*cD1(sizL1*k+1:sizL1*k+sizL1,sizL1*h+1:sizL1*h+sizL1) )))/sum(sum(...
    cD2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1).*cD2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1)));

sssD2(kk+1,hh+1)=sum(sum((cD3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2)...
    .*cD2(sizL2*k+1:sizL2*k+sizL2,sizL2*h+1:sizL2*h+sizL2) )))/sum(sum(...
    cD3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2).*cD3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2)));

sssD3(kk+1,hh+1)=sum(sum((cD4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3)...
    .*cD3(sizL3*k+1:sizL3*k+sizL3,sizL3*h+1:sizL3*h+sizL3) )))/sum(sum(...
    cD4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3).*cD4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3)));

sssD4(kk+1,hh+1)=sum(sum((cD5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4)...
    .*cD4(sizL4*k+1:sizL4*k+sizL4,sizL4*h+1:sizL4*h+sizL4) )))/sum(sum(...
    cD5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4).*cD5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4)));


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    
diffV1(kk+1,hh+1,((4*ss+8)+1))=...             %%%%%%%% DOMAIN POOL                           RANGE BLOCKS   %%%%%%%%%%
sum(sum(abs( -sssV1(kk+1,hh+1)*cV2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1)+cV1(sizL1*k+1:sizL1*k+sizL1,sizL1*h+1:sizL1*h+sizL1) )));
diffV2(kk+1,hh+1,((4*ss+8)+1))=... 
sum(sum(abs( -sssV2(kk+1,hh+1)*cV3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2)+cV2(sizL2*k+1:sizL2*k+sizL2,sizL2*h+1:sizL2*h+sizL2) )));
diffV3(kk+1,hh+1,((4*ss+8)+1))=... 
sum(sum(abs( -sssV3(kk+1,hh+1)*cV4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3)+cV3(sizL3*k+1:sizL3*k+sizL3,sizL3*h+1:sizL3*h+sizL3) )));
diffV4(kk+1,hh+1,((4*ss+8)+1))=... 
sum(sum(abs( -sssV4(kk+1,hh+1)*cV5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4)+cV4(sizL4*k+1:sizL4*k+sizL4,sizL4*h+1:sizL4*h+sizL4) )));

diffH1(kk+1,hh+1,((4*ss+8)+1))=...
sum(sum(abs( -sssH1(kk+1,hh+1)*cH2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1)+cH1(sizL1*k+1:sizL1*k+sizL1,sizL1*h+1:sizL1*h+sizL1) )));
diffH2(kk+1,hh+1,((4*ss+8)+1))=...
sum(sum(abs( -sssH2(kk+1,hh+1)*cH3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2)+cH2(sizL2*k+1:sizL2*k+sizL2,sizL2*h+1:sizL2*h+sizL2) )));
diffH3(kk+1,hh+1,((4*ss+8)+1))=...
sum(sum(abs( -sssH3(kk+1,hh+1)*cH4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3)+cH3(sizL3*k+1:sizL3*k+sizL3,sizL3*h+1:sizL3*h+sizL3) )));
diffH4(kk+1,hh+1,((4*ss+8)+1))=...
sum(sum(abs( -sssH4(kk+1,hh+1)*cH5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4)+cH4(sizL4*k+1:sizL4*k+sizL4,sizL4*h+1:sizL4*h+sizL4) )));

diffD1(kk+1,hh+1,((4*ss+8)+1))=...
sum(sum(abs( -sssD1(kk+1,hh+1)*cD2(sizL1*kk+1:sizL1*kk+sizL1,sizL1*hh+1:sizL1*hh+sizL1)+cD1(sizL1*k+1:sizL1*k+sizL1,sizL1*h+1:sizL1*h+sizL1) )));
diffD2(kk+1,hh+1,((4*ss+8)+1))=...
sum(sum(abs( -sssD2(kk+1,hh+1)*cD3(sizL2*kk+1:sizL2*kk+sizL2,sizL2*hh+1:sizL2*hh+sizL2)+cD2(sizL2*k+1:sizL2*k+sizL2,sizL2*h+1:sizL2*h+sizL2) )));
diffD3(kk+1,hh+1,((4*ss+8)+1))=...
sum(sum(abs( -sssD3(kk+1,hh+1)*cD4(sizL3*kk+1:sizL3*kk+sizL3,sizL3*hh+1:sizL3*hh+sizL3)+cD3(sizL3*k+1:sizL3*k+sizL3,sizL3*h+1:sizL3*h+sizL3) )));
diffD4(kk+1,hh+1,((4*ss+8)+1))=...
sum(sum(abs( -sssD4(kk+1,hh+1)*cD5(sizL4*kk+1:sizL4*kk+sizL4,sizL4*hh+1:sizL4*hh+sizL4)+cD4(sizL4*k+1:sizL4*k+sizL4,sizL4*h+1:sizL4*h+sizL4) )));

end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  V1
[nnV1 ekkV1]=min(min(min(diffV1)));
[rtV1 yuV1]=min((diffV1(:,:,ekkV1)));
[eeV1 rrV1]=min(rtV1);
epV1=yuV1(rrV1);

xV1(iii,jjj)=epV1;
yV1(iii,jjj)=rrV1;
ssV1(iii,jjj)=sssV1(xV1(iii,jjj),yV1(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  V2
[nnV2 ekkV2]=min(min(min(diffV2)));
[rtV2 yuV2]=min((diffV2(:,:,ekkV2)));
[eeV2 rrV2]=min(rtV2);
epV2=yuV2(rrV2);

xV2(iii,jjj)=epV2;
yV2(iii,jjj)=rrV2;
ssV2(iii,jjj)=sssV2(xV2(iii,jjj),yV2(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  V3
[nnV3 ekkV3]=min(min(min(diffV3)));
[rtV3 yuV3]=min((diffV3(:,:,ekkV3)));
[eeV3 rrV3]=min(rtV3);
epV3=yuV3(rrV3);

xV3(iii,jjj)=epV3;
yV3(iii,jjj)=rrV3;
ssV3(iii,jjj)=sssV3(xV3(iii,jjj),yV3(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  V4
[nnV4 ekkV4]=min(min(min(diffV4)));
[rtV4 yuV4]=min((diffV4(:,:,ekkV4)));
[eeV4 rrV4]=min(rtV4);
epV4=yuV4(rrV4);

xV4(iii,jjj)=epV4;
yV4(iii,jjj)=rrV4;
ssV4(iii,jjj)=sssV4(xV4(iii,jjj),yV4(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% D1
[nnD1 ekkD1]=min(min(min(diffD1)));
[rtD1 yuD1]=min((diffD1(:,:,ekkD1)));
[eeD1 rrD1]=min(rtD1);
epD1=yuD1(rrD1);

xD1(iii,jjj)=epD1;
yD1(iii,jjj)=rrD1;
ssD1(iii,jjj)=sssD1(xD1(iii,jjj),yD1(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  D2
[nnD2 ekkD2]=min(min(min(diffD2)));
[rtD2 yuD2]=min((diffD2(:,:,ekkD2)));
[eeD2 rrD2]=min(rtD2);
epD2=yuD2(rrD2);

xD2(iii,jjj)=epD2;
yD2(iii,jjj)=rrD2;
ssD2(iii,jjj)=sssD2(xD2(iii,jjj),yD2(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  D3
[nnD3 ekkD3]=min(min(min(diffD3)));
[rtD3 yuD3]=min((diffD3(:,:,ekkD3)));
[eeD3 rrD3]=min(rtD3);
epD3=yuD3(rrD3);

xD3(iii,jjj)=epD3;
yD3(iii,jjj)=rrD3;
ssD3(iii,jjj)=sssD3(xD3(iii,jjj),yD3(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  D4
[nnD4 ekkD4]=min(min(min(diffD4)));
[rtD4 yuD4]=min((diffD4(:,:,ekkD4)));
[eeD4 rrD4]=min(rtD4);
epD4=yuD4(rrD4);

xD4(iii,jjj)=epD4;
yD4(iii,jjj)=rrD4;
ssD4(iii,jjj)=sssD4(xD4(iii,jjj),yD4(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  H1
[nnH1 ekkH1]=min(min(min(diffH1)));
[rtH1 yuH1]=min((diffH1(:,:,ekkH1)));
[eeH1 rrH1]=min(rtH1);
epH1=yuH1(rrH1);

xH1(iii,jjj)=epH1;
yH1(iii,jjj)=rrH1;
ssH1(iii,jjj)=sssH1(xH1(iii,jjj),yH1(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  H2
[nnH2 ekkH2]=min(min(min(diffH2)));
[rtH2 yuH2]=min((diffH2(:,:,ekkH2)));
[eeH2 rrH2]=min(rtH2);
epH2=yuH2(rrH2);

xH2(iii,jjj)=epH2;
yH2(iii,jjj)=rrH2;
ssH2(iii,jjj)=sssH2(xH2(iii,jjj),yH2(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  H3
[nnH3 ekkH3]=min(min(min(diffH3)));
[rtH3 yuH3]=min((diffH3(:,:,ekkH3)));
[eeH3 rrH3]=min(rtH3);
epH3=yuH3(rrH3);

xH3(iii,jjj)=epH3;
yH3(iii,jjj)=rrH3;
ssH3(iii,jjj)=sssH3(xH3(iii,jjj),yH3(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  H4
[nnH4 ekkH4]=min(min(min(diffH4)));
[rtH4 yuH4]=min((diffH4(:,:,ekkH4)));
[eeH4 rrH4]=min(rtH4);
epH4=yuH4(rrH4);

xH4(iii,jjj)=epH4;
yH4(iii,jjj)=rrH4;
ssH4(iii,jjj)=sssH4(xH4(iii,jjj),yH4(iii,jjj));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



jjj=jjj+1;
end
iii=iii+1
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  LOGARITHM PROCESS  %%%%%%%%%%%%%%%%%%%%%
ssH1=ssH1*10000;
ssH2=ssH2*10000;
ssH3=ssH3*10000;
ssH4=ssH4*10000;

ssD1=ssD1*10000;
ssD2=ssD2*10000;
ssD3=ssD3*10000;
ssD4=ssD4*10000;

ssV1=ssV1*10000;
ssV2=ssV2*10000;
ssV3=ssV3*10000;
ssV4=ssV4*10000;




⌨️ 快捷键说明

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