Bonsoir, suite à un exo en informatique, je devais codé les gradient de sobel et de prewitt mais je n'obtiens pas un bon résultat.
voila mes lignes de codes qui doivent poser problème
for (int a=1; a<hauteurImagePgm-1;++a)
for(int b=1;b<largeurImagePgm;++b)
{
tmp[a][b]=(-PixelsPgm[a-1][b-1]-k*PixelsPgm[a][b-1]-PixelsPgm[a+1][b-1]+PixelsPgm[a-1][b+1]+k*PixelsPgm[a][b+1]+PixelsPgm[a+1][b+1]);
tmp1[a][b]=(PixelsPgm[a-1][b-1]+k*PixelsPgm[a-1][b]+PixelsPgm[a-1][b+1]-PixelsPgm[a+1][b-1]-k*PixelsPgm[a+1][b]-PixelsPgm[a+1][b+1]);
tmp[a][b]=sqrt(tmp[a][b]*tmp[a][b]+tmp1[a][b]*tmp1[a][b]);
/*if (tmp[a][b]<0)
tmp[a][b]=-tmp[a][b];
if(tmp[a][b]>255)
tmp[a][b]=255;*/
}
tmp et tmp1 sont des tableaux temporaires, k peut prendre la valeur de 1 ou de 2 selon si c'est prewitt et sobel.
PixelsPgm sont des unsigned char tout comme les tmp
je ne sais vraiment pas pourquoi cela ne marche pas
merci de votre aide
-----