function E = erosion(I,a,b,p); 

% function E = erosion(I,a,b,p); 
%
% Erosion d'une image I codee sur N niveaux de gris k/(N-1), k=0,...,N-1,
% avec la (a,b) bi-boule pour la norme de Minkovski d'ordre p. L'image est
% prolongee par 1 hors du cadre en une image de taille (2*N1,2*N2).  

[N1,N2] = size(I);
aa = ceil(a); 
bb = ceil(b); 
B = elstructurant(N1,N2,a,b,p);
B1 = B(1:bb,1:aa); 
B2 = B(1:bb,N2-aa+2:N2); 
B3 = B(N1-bb+2:N1,1:aa); 
B4 = B(N1-bb+2:N1,N2-aa+2:N2); 
B = [B4 B3; B2 B1];  
I = [ones(N1/2,2*N2); ones(N1,N2/2) I ones(N1,N2/2); ones(N1/2,2*N2)];
E = zeros(N1,N2); 
for j=1:N1
    for k=1:N2
        EE = B.*I (N1/2 + j - bb+2:N1/2+j+bb, N2/2+k-aa+2:N2/2+k+aa)+1-B;
        E(j,k) = min(EE(:)); 
    end
end 
        
        
