jphotensionBonjour,
je traite des images binaires bitmap en programmant en C. J'effectue des traitements sur l'image : érosion, dilatation, ouverture, fermeture ( fusion....), chapeau de forme...etc.
et donc pour traiter ces images j'utilise un élément structurant (filtre)de forme rectangulaire...le probleme c'est que c'est pourri avec des rectangles...donc j'essaie de faire des cercles mai je galere.
Explication de ma méthode : j'ai dessiné un grand disque noir sur photoshop..on s'en fou..lol, et donc suivant la taille du filtre ( élément structurant) rentrée par l'utilisateur (nombre de pixels : ici diametre du cercle) je découpe le cercle par ce nombre. Chaque case de ce cercle contient donc alors (nombre de pixel du diametre du cercle / taille filtre) ² . Si le nombre de pixels blancs dans un grand carré est inférieur au nombre de pixels noirs, alors dans un tableau de la taille du filtre je met la couleur noir ou blanche.
/*imageheight = imageWidth ici : taille de l'image ou j'ai dessiné mon grand cercle / d : taille du filtre
*/
echelle = ( imageHeight - imageHeight%d ) / d ;
//compte le nombre de pixel de meme couleur a l'intérieur de chaque carre
for (rowIdx = 0 ; rowIdx < d ; rowIdx++ )
{
for (colIdx = 0 ; colIdx < d ; colIdx++ )
{
for ( l = 0 ; l < echelle ; l++ )
{
for ( c = 0 ; c < echelle ; c++ )
{
if (matrice_binarise[rowIdx*echelle + l][colIdx*echelle + c] == 255)
sommeBlanc = sommeBlanc++ ;
else sommeNoir = sommeNoir++ ;
}
}
if ( sommeBlanc > sommeNoir ) matrice_cercle[rowIdx][colIdx] = 255;
else matrice_cercle[rowIdx][colIdx] = 0;
sommeBlanc = 0; sommeNoir = 0;
}
}
je rajouterai du code si vous voulez parce que c'est plus compliqué que ca !

j'utilise des pointeurs de pointeurs et tout, je veux pas travailler avec des tableau 1D, c'est chiant pour les indices..
Merci
Et puis meme si vous avez un algo pour faire des cercles!?! lol (pas de BGI ni OpenGl...)