
% FUNKCIJA KOJA MIJENJA DETALJE OVISNO O POSTAVLJENOM PRAGU
% funkcija vraèa izmjenjene detalje
% k je parametar koji odgovara razini dekompozicije


function [H,V,D] = odsumljavanje_2(A,H,V,D,k)


Lk=size(A,1);
beta=sqrt(log(Lk/k));     % težinska konstanta koja se odreðuje
%                           posebno za svaki detalj

[R S]=size(A);

%izraèun varijance šuma
Vn=(median(median(double(A)))/0.6745)^2;

%izraèun varijance signala za svaki pojas posebno
Vs1=var(var(double(H)));
Vs2=var(var(double(V)));
Vs3=var(var(double(D)));

%odreðivanje praga za svaki detalj
P1=beta*Vn/Vs1;
P2=beta*Vn/Vs2;
P3=beta*Vn/Vs3;

% PRIMJENA SOFT THRESHOLD-a NA SVAKI DETALJ
for i=1:R
    for j=1:S
        
        if abs(H(i,j))<=P1
              H(i,j)=0;       
        else
           H(i,j)=sign(H(i,j))*(abs(H(i,j))-P1);
        end
        
        if abs(V(i,j))<=P2 
              V(i,j)=0;  
        else
            V(i,j)=sign(V(i,j))*(abs(V(i,j))-P2);
        end
        
        if abs(D(i,j))<=P3
             D(i,j)=0;  
        else   
            D(i,j)=sign(D(i,j))*(abs(D(i,j))-P3);
        end
        
    end
end

