Bonjour tous le monde;
Je suis entrain de programmer un logiciel pour segmenter une image à l'aide de la méthode des ensembles de niveaux (Level Sets); et pour cela j'utilise comme fonction distance "phi" un cercle (contour initial).
j'ai ecrit ce petit programme:
Avec le Matlab tous marche bien; j'ai eu un cercle bien dessiner, tel que avec l'utilisation de l'équation du cercle j'aurai des distance négatifs à l'intérieur du cercle et positifs à l'extérieur et le "zéro" sera pour les pixels qui appartient aux cercle => c'est mon but.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 // Initialisation de la matrice "Phi" // choix du centre float x0=76; float y0=91; // choix du rayon float R=10; // dessiner le cercle for(int i=0;i<H;i++) for(int j=0;j<W;j++) { phi[i][j]=sqrt(((x0-j)*(x0-j))+((y0-i)*(y0-i)))-R; }
mais le problème, comme "i" et "j" sont des entier et la matrice phi,x0,y0 sont des "float" on aura pas un 0 dans tous les points du cercle, peut être on trouve 0.000001 mais pas un 0.
alors comment on résout ce problème es qu'on change "float " ou int ou ...je ne sais pas...
Merci de bien vouloir répondre
Partager