demande d'aide pour dessiner un cercle
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:
Code:
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;
} |
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.
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