Salut;
Je suis sur le point de péparer mon PFE, mon projet consiste à détecter les défaut dans des image de la radiographie industrielle avec Matlab.
En effet, j'ai une image en niveau de gris et j'ai appliqué imcrop pour extraire une portion de cette image, puis je veux faire le seuillage de cette image en utilisant l'algorithme de Sauvola. Ce dernier calcule la moyenne et l'écart type pour chaque 15*15 et puis à partir de ces valeur il va calculer la seuille de cette portion de 15*15 et il applique le seuillage de cette portion, je pense il faut ensuite additionner tous ces portions et les rendre une image seuillée.
j'ai esayer de faire le code suivant:
Code :
I=imread('68JP.jpg');
figure(1),imshow(I);
I1=imcrop; %sélectionner une portion de l'image
ss=size(I1);%calculer la taille de l'image
Im=I1;
mf=zeros(ss(1),ss(2));
%parcours de l'image à seuiller
for i=1:15:ss(1)
for j=1:15:ss(2)
h=i;hi=i+15;
s=j;sj=j+15;
%si la taile de la dernière portion de l'imge est inf à 15
if(hi>ss(1))
break;
end
if(sj>ss(2))
break;
end
%création d'une matrice vide de taille qui vaut à 15*15
MM=zeros(hi-h,sj-s);
%copier la portion 15*15 dans une matrice vide
o=1;
p=1;
for m=h:hi
for n=s:sj
MM(o,p)=Im(m,n);
o=o+1;
p=p+1;
end
end
moyen=mean(mean(MM));
ecart=std(std(MM));
MM=zeros(hi-h+1,sj-s+1);
%calcul du seuil pour la portion 15*15
seuil(m,n) = moyen *(1 + (1/10)*( 1-( ecart / 256) ));
%appliquer le seuillage sur l'image
k=1;
l=1;
for k=h:hi
for l=s:sj
disp(k);
if(Im(k,l)=seuil(m,n)) %si le pixel sup ou egal à seuil, il devient blanc
mf(k,l)=256;
end
end
end
end
end
figure(2),imshow(mf);
Le résultat de ce code ne me donne pas un bon seuillage:
[URL=http://www.imagup.com/pics/1270893864.html]

[/URL]
Comme vous voyez ce n'est pas une bonne résultat alors que dans des pixels particulier elle donne une bonne résultat, je pense que j'ai commis une erreur dans mon code???
Merci de m'aider.