Bonjour à tous,
J'essaie de pixeliser une image en suivant l'énoncé suivant : Ecrire une méthode qui prend en paramètre un nombre entier N et qui transforme l'image de départ en formant des "agglomérats" de taille NxN. La couleur du "pavé" correspondant est déterminé par la moyenne arithmétique des couleurs présentes dans les N*N pixels.
Je ne parviens pas à arriver au bon résultat. J'ai réussi à faire une pixellisation simple sans faire la moyenne.
Mon image est sous forme d'une matrice[colonne][ligne] avec des pixels qui ont leurs couleurs avec les trois composantes RVB.
Voici ma boucle :
Si vous avez une idée n'hésité pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 for (int y = 0; y + N <= nombreLignes; y+= N){ for (int x = 0; x + N <= nombreColonnes; x+= N){ // Récupération des composantes couleurs du pixel r = matrice[x][y].getCouleurRouge(); v = matrice[x][y].getCouleurVert(); b = matrice[x][y].getCouleurBleu(); for (int k = y; k < y + N; k++){ for (int l = x; l < x + N; l++){ matrice[l][k] = Pixel(r, v, b, l, k); } } } }
Merci de votre aide
Partager