function gradient_simple (I)  %fonction qui prend en paramètre une image I et affiche les coord et la norme du gradient simple
    [m, n, can] = size(I); %m=nb lignes, n=nb colonnes, can=nb canaux
    if(can > 1)
        I = rgb2gray(I);  %dans le cas d'une image couleur, la transformer en NG
    end

    I2=I;
    %I2=imnoise(I,'gaussian',0, 0.05);
    J = I2;
    GH = double(zeros(m-1,n-1));
    GV = double(zeros(m-1,n-1));
    for l = 1:m-1;
        for c = 1:n-1;
            GH(l,c)= double(I(l,c+1)) - double(I(l,c));     %coord x du gradient
            GV(l,c)= double(I(l+1,c)) - double(I(l,c));     %coord y du gradient
            %J(l,c)= uint8(sqrt(double(abs((GH(l,c)))^2 + abs((GV(l,c)))^2)));  %norme 2
            J(l,c)= uint8(abs(GH(l,c)) + abs(GV(l,c)));  %norme 1
            %J(l,c)= uint8(max(abs(GH(l,c)), abs(GV(l,c))));  %norme infinie
        end;
    end;
    %seuillage : 
    seuil = input('Donner le seuil: ');
    bin =(J >= seuil) * 255;

    figure
    %divise la fenêtre en 1 ligne et 2 colonnes : pour afficher 2 images l'une à côté de l'autre
    subplot(2, 2, 1)  %sélectionne le premier cadran 
    colormap(gray)
    %imagesc(I2);    %affichage des coord x du grad
    imagesc(GH);    %affichage des coord x du grad
    title(strcat('GH - min = ', num2str(min(min(GH))), ' max = ', num2str(max(max(GH)))));
    
    subplot(2, 2, 2) %sélectionne le deuxième cadran
    colormap(gray)
    imagesc(GV);    %affichage des coord y du grad
    title(strcat('GV - min = ', num2str(min(min(GV))), ' max = ', num2str(max(max(GV)))));

    subplot(2, 2, 3) %sélectionne le 3ème cadran
    colormap(gray)
    imagesc(J);      %affichage de la norme du gradient
    title(strcat('Norme du grad - min = ', num2str(min(min(J))), ' max = ', num2str(max(max(J)))));

    subplot(2, 2, 4) %sélectionne le 3ème cadran
    colormap(gray)
    imagesc(bin);   %affichage du seuillage
    title(strcat(['Seuil égal à ', num2str(seuil)]));  % affichage du seuil
