function E = erosionbis(I,a,b,p,h); 

% E = erosionbis(I,a,b,p,h); 
%
% Erosion d'une image I codee sur N niveaux de gris k/(N-1), k=0,...,N-1,
% avec un element structurant non plat supporte par 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). 
% L'image h est une image de taille (2*ceil (b) -1, 2*ceil(a)-1) 
% consideree comme definie sur le support de 
% l'element stucturant. On pourra par exemple prendre 
%     h = +/- alpha * hamming(2*ceil(b)-1)*hamming(2*ceil(a)-1)'
% ou alpha est un parametre entre 0 et 1. L'image peut egalement 
% etre envisagee comme une image a valeurs dans ]-1,1[. 

[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)-h) +2*(1-B);
        E(j,k) = max(0,min(EE(:))); 
    end
end 
        
        
