IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

affichage de l'histogramme


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 50
    Par défaut affichage de l'histogramme
    Voilà je veux afficher l'histogramme d'une image .

    Je ne sais pas comment faire appel à l'histogramme pour qu'il s'affiche

    Voilà mon 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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    public class fen02 extends JFrame implements ActionListener{
     
    private JLabel photoPreview;private JLabel histo;
     
    private BufferedImage image,image2;
    int width;        
    int height;
     
    public fen02(){
            super("");    
            build();
            }
     
        public void build(){
            setTitle("debut du projet"); 
            setSize(1200,900); 
            setResizable(true);
            setContentPane(buildContentPane());}
     
            private JPanel buildContentPane(){
            JPanel panel = new JPanel();
            panel.setLayout(null);
     
     
            photoPreview = new JLabel();
            photoPreview.setBounds(100,200,200,200);
            panel.add(photoPreview);
     
            histo = new JLabel();
            histo.setBounds(400,600,200,200);
            panel.add(histo);
     
     
     
     
            JMenuBar menuBar = new JMenuBar();
            JMenu menu1 = new JMenu("Fichier");
            JMenuItem ouvrir = new JMenuItem("Ouvrir");
            menu1.add(ouvrir);
            Ecouteur1 ec1=new Ecouteur1();
            ouvrir.addActionListener(ec1);
            menuBar.add(menu1);
            setJMenuBar(menuBar);
     
            return panel;
     
            }
     
     
            class Ecouteur1 implements ActionListener{
            public void actionPerformed(ActionEvent e)
            {
            JFileChooser fc = new JFileChooser();
            int returnVal = fc.showOpenDialog
            (fen02.this);
            if(returnVal == JFileChooser.APPROVE_OPTION){
     
            java.awt.Toolkit toolkit = java.awt.Toolkit.getDefaultToolkit();
            String f=fc.getSelectedFile().getName();
            Image img = toolkit.getImage(f);
            ImageIcon ic = new ImageIcon(img.getScaledInstance(150, 150,Image.SCALE_AREA_AVERAGING));
     
            photoPreview.setIcon(ic);
     
     
            String ff=fc.getSelectedFile().getName();
     
            try{
            image = ImageIO.read(new File(ff));
     
     
     
     
            int[] histoRouge = new int[256];
    int[] histoVert = new int[256];
    int[] histoBleu = new int[256];
    int w = image.getWidth();
    int h =image.getHeight();
    int[] rgbs = new int[w*h]; 
    image.getRGB(0,0,w,h,rgbs,0,w);
    for(int c=0; c<256; c++){
      histoRouge[c] = 0;
      histoVert[c] = 0;
      histoBleu[c] = 0;
    }
     
     
     
     
    for (int i = 0; i < rgbs.length; i++) {
      int rouge = (rgbs[i] >>16 ) & 0xFF;
      int vert = (rgbs[i] >> 8 ) & 0xFF;
      int bleu = rgbs[i] & 0xFF;
      histoRouge[rouge] ++;
      histoVert[vert] ++;
      histoBleu[bleu] ++;
            }
     
     
            }
     
     
     
     
     
     
            catch (IOException ee){}
     
            }}}
     
     
            public void actionPerformed(ActionEvent e) {
            Object source = e.getSource();
            }
     
     
            public static void main(String[] args) {
            fen02 fenetre = new fen02();
            fenetre.setVisible(true);
     
            }
     
        }
    Si quelqu'un voit mon erreur.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c'est bien jolie, mais je ne vois nulle part dans ton code ou tu crée un composant graphique capable d'afficher ton histogramme ou le générer. Je te vois bien calculer des tableaux de composantes, mais je ne vois pas où tu les utilise après.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 50
    Par défaut
    que dois je rajouter alors? si tu as un exemple

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    trouver une manière d'afficher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int[] histoRouge = new int[256];
    int[] histoVert = new int[256];
    int[] histoBleu = new int[256];
    qui, je suppose est ton "histograme". Le plus simple est de te créer un composant histograme, dérivé de JComponent, et qui dessine dans sa méthode paint(Graphics g) l'histogramme en question.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 50
    Par défaut
    Tu peux me montrer comment tu ferais avec mon code pour que ça fonctionne.J"ai essayé mais j'arrive pas

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Montre:

    ce que tu as essayé et ce qu'i ne va pas dedans. Et non, je ne coderais pas de a à z un composant histogramme à ta place.

Discussions similaires

  1. erreur lors de l'affichage de l'histogramme
    Par tuunisiano dans le forum Images
    Réponses: 3
    Dernier message: 13/03/2009, 06h49
  2. Mauvais affichage sur un histogramme
    Par Mloody2000 dans le forum Langage
    Réponses: 5
    Dernier message: 27/08/2008, 19h07
  3. affichage d'un histogramme d'une matrice aleatoire
    Par boinamib dans le forum Traitement d'images
    Réponses: 8
    Dernier message: 16/05/2007, 16h12
  4. [JSP] Affichage d'un histogramme : Applet ou pas?
    Par tony_big_guy dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 16/03/2006, 08h47
  5. [MFC] Affichage d'un histogramme Excel ou autre
    Par semenzato dans le forum MFC
    Réponses: 1
    Dernier message: 14/02/2006, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo