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

Traitement d'images Discussion :

[Java] remplir un BufferedImage par un tableau de pixel


Sujet :

Traitement d'images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Par défaut [Java] remplir un BufferedImage par un tableau de pixel
    bonjour, je cherche à remplir un BufferedImage ( en java ) par un tableau de pixel (2d) donné et convertir le BufferedImage sur un fichier par exemple (image.jpg), s'il y a quelqu'un qui peut m'aider, merci d'avance.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Tout dépend de ce qu'il y a dans ton tableau 2D (int, Color, autre).

    D'une manière générale, un BufferedImage RGB utilise un Raster qui est composé d'un buffer linéaire d'entiers (un tableau 1D de int au format rgb). Il faut donc convertir ton tableau 2D et tableau 1D d'entiers:

    Je vais supposer un tableau 2D d'objets "java.awt.Color":

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public static BufferedImage ColorArrayToBufferedImage(Color[][] data, int w,int h) {
    	BufferedImage bimg = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
    	int[] linearbuffer = new int[w*h];
    	int i=0;
    	for(int y=0;y<h;y++)
    		for(int x=0;x<w;x++)
    			linearbuffer[i++]=data[x][y].getRGB();
    	bimg.getRaster().setDataElements(0, 0, w, h, linearbuffer);
    	return bimg;
    }
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Par défaut
    merci, mais c'est pas exactement ce que je cherche, pour bien comprendre ma questionne :

    HarrisFast hs=new HarrisFast(tab,im.getWidth(),im.getHeight());
    tab2=hs.filter(3, 1.2, 32, 8);

    je pense que vous avez compris (L'histoire des points d'interêt ), le probleme c'est comment rendre le tab2 dans un buffer pour qu'ensuite je peux l'afficher ou enregistrer dans un fichier jpeg

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Ah. Dans ce cas le tableau 2D contient des niveaux de gris. Donc une modification s'impose:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public static BufferedImage GrayLevelArrayToBufferedImage(int[][] data, int w,int h) {
    	BufferedImage bimg = new BufferedImage(w,h,BufferedImage.TYPE_BYTE_GRAY);
    	byte[] linearbuffer = new byte[w*h];
    	int i=0;
    	for(int y=0;y<h;y++)
    		for(int x=0;x<w;x++)
    			linearbuffer[i++]=(byte)data[x][y];
    	bimg.getRaster().setDataElements(0, 0, w, h, linearbuffer);
    	return bimg;
    }

    Sinon, pour tester le filtre HarrisFast, tu peux télécharger le programme de Millie.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 127
    Par défaut Merci Beaucoup pseudocode
    Merci Beaucoup pseudocode
    C'est ce que je cherche.
    Je l'ai testé sur une image, il est trés efficace.
    Il me reste une chose, comment connaitre la position des points d'interêt finals parceque j'en ai besoin pour faire ensuite une comparaison avec d'autres images

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par bilzzbenzbilz Voir le message
    Je l'ai testé sur une image, il est trés efficace.
    Il faut dire merci à Chris Harris.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/05/2015, 19h41
  2. [JAVA] remplir BufferedImage par un tableau d'objet
    Par amivb dans le forum Traitement d'images
    Réponses: 7
    Dernier message: 13/05/2015, 20h34
  3. peupler une table Mysql par un tableau java
    Par serenity_1989 dans le forum Requêtes
    Réponses: 1
    Dernier message: 28/03/2012, 15h39
  4. [Java] Seriez-vous intéressé par un Guide à la Certification Java ?
    Par christopheJ dans le forum Certifications
    Réponses: 121
    Dernier message: 07/09/2011, 18h39
  5. Java : remplir un tableau d'entier.
    Par redus_magnus dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 29/03/2010, 23h29

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