%**********************************************************
%**    Vyuzití Walshovy mod. baze ke kompresi obrazu     **
%**                 Diskrétní transformace               **
%**        Leos Marsalek  Leos.Marsalek@tiscali.cz       **
%**        Jan Skapa Jeniczek.s@seznam.cz (c) 2003       **
%**********************************************************
tic;
Gen_obr;    
% generování obrázku www.sendme.cz/goro
prepocet256x256; 
pic=pic3;   
% vyber obrazku se kterym se bude provadet komprese
Koef=70;    % kvantizacni koeficient cim vyssi timlepsi kvalita 0-100

ypic=rgb2ycbcr(pic);
y=ypic(:,:,1);
cb=ypic(:,:,2);
cr=ypic(:,:,3);
Y=walshm_tr2(y);                      
% vypocet obrazu
CB=walshm_tr2(cb);
CR=walshm_tr2(cr);
[Y_U,Y_U_im,Y_N_im]=vyber(Y,Koef);      
% prahovaci funkce vybira co ulozit a co zahodit
[CB_U,CB_U_im,CB_N_im]=vyber(CB,Koef);
[CR_U,CR_U_im,CR_N_im]=vyber(CR,Koef);
uz_informace=[Y_U CB_U CR_U];           
% to jsou uzitecne informace ( uchovavaji se )

% rekonstrukce obrazu
pic_rek_uz(:,:,1)=iwalshm_tr2(Y_U_im);
pic_rek_uz(:,:,2)=iwalshm_tr2(CB_U_im);
pic_rek_uz(:,:,3)=iwalshm_tr2(CR_U_im);
pic_rek_neuz(:,:,1)=iwalshm_tr2(Y_N_im);
pic_rek_neuz(:,:,2)=iwalshm_tr2(CB_N_im);
pic_rek_neuz(:,:,3)=iwalshm_tr2(CR_N_im);


% zapsani obrazku do souboru
imwrite(ycbcr2rgb(pic_rek_uz),'pic3_komp_walshm_uz.tif','tif');
imwrite(ycbcr2rgb(pic_rek_neuz),
'pic3_komp_walshm_neuz.tif','tif');
clear Y CB CR y cb cr Y_U CB_U CR_U Y_N_im CB_N_im CR_N_im; 
clear Y_U_im CB_U_im CR_U_im  ;

toc;