voici ma fonction qui compte le nombre de pixels par formes :
void MONIMAGESEGM::compte(int x,int y,int &somme)
{
if (x<0 || x>=im.tailleX || y<0 || y>=im.tailleY)
return; // si les coordonnées de la case à tester ne sont pas valides
else if (temp[x][y] == -1 || temp[x][y] == 1)
return; // si la case a déjà été marquée ou n'appartient pas à la forme
else
{
temp[x][y]=1; // on marque la case
somme++; // on ajourte 1 au nombre de pixels de la forme
if(x > 0) compte(x-1,y,somme);
if(x < im.tailleX - 1) compte(x+1,y,somme);
if(y > 0) compte(x,y-1,somme);
if(y < im.tailleY - 1) compte(x,y+1,somme);
if(x > 0 && y > 0) compte(x-1,y-1,somme);
if(x > 0 && y < im.tailleY - 1) compte(x-1,y+1,somme);
if(x < im.tailleX - 1 && y > 0) compte(x+1,y-1,somme);
if(x < im.tailleX - 1 && y < im.tailleY - 1) compte(x+1,y+1,somme);
}
}
imaginé si une forme fait la moitié d'une image de 1024*768...