
%%      WAVELETA DEKOMPOZICIJA NA SLICI

function [A,H,V,D]=moj2dfwt(img)

filt='db1';                     % odabrani filtar

% prva razina
[R,S]=size(img);                % velicina ulazne slike

A=zeros(R,ceil(S/2));           % prazne matrica za prvu razinu
B=zeros(R,ceil(S/2));
for i=1:R
    pom=img(i,1:S);             % red 'i' ide u pomocnu varijablu

    % dekompozicija
    [CA,CD] = DWT(pom,filt);    % filtriranje i decimacija

    % slaganje natrag u matrice
    A(i,1:ceil(S/2))=CA;        % aproksimacija ide u matricu A
    B(i,1:ceil(S/2))=CD;        % detalj ide u matricu B
end;
A=A';                           % okretanje
B=B';                           % okretanje


% druga razina --> NP
A1=zeros(ceil(S/2),ceil(R/2));
A2=zeros(ceil(S/2),ceil(R/2));
for i=1:ceil(S/2)
    pom=A(i,1:R);

    % dekompozicija
    [CA,CD] = DWT(pom,filt);

    % slaganje natrag u matrice
    A1(i,1:ceil(R/2))=CA;
    A2(i,1:ceil(R/2))=CD;
end;

A=A1';
H=A2';


% druga razina --> VP
B1=zeros(ceil(S/2),ceil(R/2));
B2=zeros(ceil(S/2),ceil(R/2));
for i=1:S/2
    pom=B(i,1:R);

    % dekompozicija
    [CA,CD] = DWT(pom,filt);

    % slaganje natrag u matrice
    B1(i,1:ceil(R/2))=CA;
    B2(i,1:ceil(R/2))=CD;
end;

V=B1';
D=B2';
