bonjour,
j'ai quelque lignes de codes que je n'arrive pas à comprendre
ce programme de contour doit normalement détecter la surface d'une image qui en haut est noir et en bas pleine d 'eau donc normalement ça aurait suffit de faire find(double(I2(:,i))==1,1); et donc de tracer la sortie du premier contour détecté par edge, or ce que je comprend pas c'est la sortie de double sur laquelle il définit un seuil ( d'ailleurs je sais pas sur quel critère il le choisit) et prends la première valeurs dépassant ce seuil
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 I1=imread([FileName]); [l c]=size(I1); I3=double(I1); I2=double(edge(I1,'canny',0.1,2)); I4=I3+I2*255; for i=1:c; ind1=find(double(I4(:,i))>144,1); % chercher le premier pixel qui dépasse la valeur seuil if ~isempty(ind1); indz1(i)=ind1; end; end;
cette méthode qu'il utilise (ajouter la recherche d'un autre seuil a celle de la sortie de edge) marche très bien sur mes images, mieux même que celle ou je prends les premières valeurs de 1, mais je comprends pas pourquoi?
merci d'avance
Partager