📄 wavelet_fractal_compressor.m
字号:
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 + -