% synthese = f ( image , 0 pour normal-1 pour denoise-2 pour etaler le
% contraste , type de calcul(gradient=gradt, edginess=ed*d ou rien , step)
function Image_contours = synthese2(J, a, type, energie, step)


% Les differents handles

ed = @edginess;
cons = @byaverage;
n = @norme;
p = @param;
tr = @trace_ed;
bds = @boundaries;
m = @matrice_R_G2;
moy = @moyenne;
fll2 = @piece_fill2;
masart = @m_and_s_artefact;
grad = @ged;
meansq = @msd;
ekl = @energie_k_lambda;
link = @relier;
affich = @affichage;
pe = @premiers_essais;
ekl2 = @energie_k_lambda2;
affich2 = @affichage2;

%Creation des matrices R et G a partir de l'image

[R, l, c, N] = feval(m, J, a);

if type == 'ed*d'
% SANS LE GRADIENT
% Trace de la courbe log de d*e et de d*e*grad en fonction des points (i,j)
% en prennant garde a les classer par ordre decroissant
%courbe = feval(tr, R, l, c);
    for e = 1:3
        N_inter = N(:,:,e);
        R_inter = R(:,:,e);
    % Mieux mais un peu lent, on prend un certain nombre nb
    [courben2,E,t, Memoire_contour, Memoire_fill] = feval(ekl2, N_inter, R_inter, l, c, energie, step);
    % maintenant on "fill" la figure obtenue
    [Image_contour,Image_fill] = feval(affich2,E,t,l,c,N,10^(-6),Memoire_contour, Memoire_fill,'no', 'on');
    end
end