Bonsoir,
En effet cétait tout bête. Merci beaucoup !
Bon, mais j'ai tjrs quelques problèmes (je m’ennuierais sinon..) :
Après l'application de mon filtre median, j'obtiens une image disons...horrible. Rien à voir avec l'image de départ.
Je pense que mon erreur viens de la récupération de mon voisinage mais j'vois pas ou...
J'ai fait ceci :
Ca m'arrangerait que la solution soit du même niveau que tout à l'heure et que ce ne soit qu'une erreur bête :DCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 // calcul du voisinage : for( i = 1; i < hauteur - 1; i++ ) { for( j = 1; j < largeur - 1; j++ ) { long elements = (i*largeur)+ j; int val_mediane ; vecteur_1D[elements] = newPixels [i][j]; // on copie dans vecteur_1D les pixels // récupération du voisinage (une boucle serait plus adaptée): vecteur_1D.push_back(pixels[ i - 1 ][ j - 1 ]); vecteur_1D.push_back(pixels[ i - 1 ][ j ]); vecteur_1D.push_back(pixels[ i - 1 ][ j + 1 ]); vecteur_1D.push_back(pixels[ i ][ j - 1 ]); vecteur_1D.push_back (pixels[ i ][ j + 1 ]); vecteur_1D.push_back ( pixels[ i + 1 ][ j - 1 ]); vecteur_1D.push_back(pixels[ i + 1 ][ j ]); vecteur_1D.push_back (pixels[ i + 1 ][ j + 1 ]); if (vecteur_1D.size()%2 == 0) // La suite ordonnée est de taille paire { val_mediane=( (vecteur_1D.size()/2)-1 + vecteur_1D.size()/2 )/2; newPixels[i][j]=val_mediane; } else // sinon (la suite est impaire) { val_mediane=( vecteur_1D.size() )/2 ; newPixels[i][j]=val_mediane; } if ( vecteur_1D[elements] > 255 ) vecteur_1D [elements] =255; if ( vecteur_1D[elements] <0 ) vecteur_1D[elements] =0; } }
D'avance merci en tout cas !