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

 Java Discussion :

binarisation image niveau de gris


Sujet :

Java

  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 32
    Par défaut binarisation image niveau de gris
    j'ai essayé de binariser une image niveau de gris.
    j'utilise la fonction getPixels pour transformer une image vers une matrice.
    quel est la forme des nombres enregistrées dans la matrice correspond en image c'est a dire binaire,decimale ou quoi?

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 698
    Par défaut
    De quel pacquage et objet viens ta fonction getPixels() ?

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 32
    Par défaut
    le code de la fonction est le suivant:
    public void getPixels(Image img, int pixels[], int w, int h)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	{   
    		PixelGrabber pg = new PixelGrabber(img, 0, 0, w, h, pixels, 0, w); 
    		try {                                                              
    			pg.grabPixels();                                               
    		} catch (InterruptedException e) {                                 
    			System.err.println("interrupted waiting for pixels!");         
    			return;                                                        
    		}                                                                  
    		if ((pg.status() & ImageObserver.ABORT) != 0) {                    
    			System.err.println("image fetch aborted or errored");          
    			return;                                                        
    		}  
    	}

  4. #4
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 698
    Par défaut
    Lorsque tu postes du code met le entre les balises [code ] et [/code ] pour que l'indentation ne soit pas perdue.

    Le tableau est une liste de pixel, Chaque ligne est stoqué à la suite de la précédente.
    Cela signifie que pour avoir le pixel au coordonnées (a,b) d'une image qui mesure w de large et h de haut: il faut faire int
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int pixel = pixels[a+b*w];
    Ensuite chaque pixel est codé en ARGB sur un int (4 octets). Les octets contiennent respectivement : l'alpha(de 0 pour transparent à 255 pour opaque), le rouge, le vert et le bleu.
    Tu peux les extraire séparément comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int alpha = (pixel >> 24) & 0xff;
    int red   = (pixel >> 16) & 0xff;
    int green = (pixel >>  8) & 0xff;
    int blue  = (pixel      ) & 0xff;

  5. #5
    Membre averti
    Inscrit en
    Février 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 32
    Par défaut
    j'ai essayé avec ce code mais rien ne s'affiche
    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
     
     int i;
                    int red = 0;
                    int blue =0;
                    int green=0;
                    //Boucle de binarisation de l'image AWT
                    for (i=0;i<(l*h);i++){
                            blue=((matrice[i] >> 0) & 0xff);
                            green=((matrice[i] >> 8) & 0xff);
                            red=((matrice[i]  >> 16) & 0xff);
                            if(red>120) red=1;
                            else red=0;
                            if(green>120) green=1;
                            else green=0;
                            if(blue>120) blue=1;
                            else blue=0;
                            //On renvoie que le rouge car on aune image noir et blanc donc cela ne change rien
                            matrice[i] = red;//(255 << 24) | (red<< 16) | (green<< 8) | blue;
    je cherche un code qui binarise une image niveau de gris en java.

Discussions similaires

  1. lire une image niveau de gris
    Par mos_msi dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 24/09/2011, 09h35
  2. [Débutant] Méthode pour transformer une image numérique en image niveau de gris
    Par king_soft dans le forum Images
    Réponses: 4
    Dernier message: 21/03/2011, 13h33
  3. Mode d'une image niveau de gris
    Par jassem dans le forum Signal
    Réponses: 1
    Dernier message: 09/03/2011, 12h49
  4. Colorer des pixels sur une image niveau de gris
    Par info_plus dans le forum MATLAB
    Réponses: 2
    Dernier message: 22/09/2010, 16h57
  5. Réponses: 2
    Dernier message: 23/01/2009, 15h43

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