finir le sprint 3
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
package fr.iutfbleau.sae.mhuffman;
|
||||
import fr.iutfbleau.sae.mimage.Pixel;
|
||||
import fr.iutfbleau.sae.mimage.RGBImage;
|
||||
|
||||
/**
|
||||
@@ -26,7 +27,7 @@ import fr.iutfbleau.sae.mimage.RGBImage;
|
||||
* </p>
|
||||
*
|
||||
* @author Algassimou Pellel Diallo
|
||||
* @version 1.0
|
||||
* @version 1.1
|
||||
* @since 2025-12-13
|
||||
*/
|
||||
public class FrequencyTable {
|
||||
@@ -62,22 +63,28 @@ public class FrequencyTable {
|
||||
* </p>
|
||||
*
|
||||
* @param img l'image RGB à analyser
|
||||
* @throws IllegalArgumentException si l'image est null
|
||||
*/
|
||||
public void computeFromImage(RGBImage img) {
|
||||
/*Nb: une composante de couleur est un entier entre 0 et 255 qui représente la part de rouge,vert ou bleu
|
||||
dans la couleur d'un pixel.
|
||||
*/
|
||||
/* pour chaque composante de couleur de chaque pixel, on incrémente la fréquence correspondante,
|
||||
c'est-à-dire on compte le nombre de fois que la composante apparaît dans l'image.
|
||||
ex: si un pixel P a une composante rouge de 150, on incrémente freqR[150] de 1.
|
||||
puis on fait de même pour les composantes verte et bleue.
|
||||
on répète ce processus pour tous les pixels de l'image.
|
||||
*/
|
||||
for (int ligne = 0; ligne < img.getWidth(); ligne++) {
|
||||
for (int colonne = 0; colonne < img.getHeight(); colonne++) {
|
||||
this.freqR[img.getPixel(ligne, colonne).getR()]++; // Incrémente la fréquence de la composante rouge
|
||||
this.freqG[img.getPixel(ligne, colonne).getG()]++; // Incrémente la fréquence de la composante verte
|
||||
this.freqB[img.getPixel(ligne, colonne).getB()]++; // Incrémente la fréquence de la composante bleue
|
||||
if (img == null) {
|
||||
throw new IllegalArgumentException("L'image ne peut pas être null");
|
||||
}
|
||||
|
||||
/* Pour chaque composante de couleur de chaque pixel, on incrémente la fréquence correspondante,
|
||||
* c'est-à-dire on compte le nombre de fois que la composante apparaît dans l'image.
|
||||
* Ex: si un pixel P a une composante rouge de 150, on incrémente freqR[150] de 1.
|
||||
* Puis on fait de même pour les composantes verte et bleue.
|
||||
* On répète ce processus pour tous les pixels de l'image.
|
||||
*/
|
||||
for (int x = 0; x < img.getWidth(); x++) {
|
||||
for (int y = 0; y < img.getHeight(); y++) {
|
||||
// On récupère le pixel une seule fois pour optimiser
|
||||
Pixel pixel = img.getPixel(x, y);
|
||||
|
||||
// Puis on incrémente les trois fréquences
|
||||
this.freqR[pixel.getR()]++;
|
||||
this.freqG[pixel.getG()]++;
|
||||
this.freqB[pixel.getB()]++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -93,7 +100,6 @@ public class FrequencyTable {
|
||||
|
||||
/**
|
||||
* Retourne le tableau des fréquences de la composante verte.
|
||||
*
|
||||
* @return un tableau de 256 entiers représentant les fréquences du vert
|
||||
*/
|
||||
public int[] getGreen() {
|
||||
@@ -108,8 +114,4 @@ public class FrequencyTable {
|
||||
public int[] getBlue() {
|
||||
return this.freqB;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user