Bonjour,

je dessine un histogramme d'une image en utilisant ce code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
public class Histogramme extends JComponent {
 
   private static final long serialVersionUID = 1L;
   private BufferedImage image, histogramme;
   private final int largeur = 256;
   private final int hauteur = 200;
   private Graphics2D dessin;
   private final int[] rouge = new int[256];
   private final int[] vert = new int[256];
   private final int[] bleu = new int[256];
 
   public Histogramme(BufferedImage monImage){
      image = monImage;
      récupérerRVB();
      tracerHistogrammes();
   }
 
   protected void paintComponent(Graphics surface) {
     // surface.drawImage(image, 0, 0, null);  
      surface.drawImage(histogramme,100, 100, null);
   }
 
   private void récupérerRVB() {
      Raster trame = image.getRaster();
      int[] rgb = new int[3];
      int maximum = 0;
      for (int y=0; y<image.getHeight(); y++)
         for (int x=0; x<image.getWidth(); x++) {
            trame.getPixel(x, y, rgb);
            rouge[rgb[0]]++;
            vert[rgb[1]]++;
            bleu[rgb[2]]++;
         }          
   }
 
   private void tracerHistogrammes() {
      histogramme = new BufferedImage(largeur, hauteur, BufferedImage.TYPE_INT_ARGB);
      dessin = histogramme.createGraphics();
      Rectangle2D rectangle = new Rectangle2D.Double(0, 0, largeur-1, hauteur-1);
      dessin.draw(rectangle);
      dessin.setPaint(new Color(1F, 1F, 1F, 0.2F));
      dessin.fill(rectangle);     
      changerAxes();
      dessin.setPaint(new Color(1F, 0F, 0F, 0.4F));
      tracerHistogramme(rouge);
      dessin.setPaint(new Color(0F, 1F, 0F, 0.4F));
      tracerHistogramme(vert);
      dessin.setPaint(new Color(0F, 0F, 1F, 0.4F));
      tracerHistogramme(bleu);
   }
 
   private void changerAxes() {
      dessin.translate(0, hauteur);
      double surfaceImage = image.getWidth()*image.getHeight();
      double surfaceHistogramme = histogramme.getWidth()*histogramme.getHeight();
      dessin.scale(1, -surfaceHistogramme/surfaceImage/3.7);     
   }  
 
   private void tracerHistogramme(int[] couleur) {
      for (int i=0; i<255; i++)
         dessin.drawLine(i, 0, i, couleur[i]);             
   }

Ma question est je veux afficher les valeurs de celui ci, genre le max le zero le 255 !! Et j'en ai aucune idée