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

ImageJ Java Discussion :

Affecter une couleur à chaque régions d'une image ?


Sujet :

ImageJ Java

  1. #1
    Membre régulier Avatar de Imène_23
    Femme Profil pro
    Inscrit en
    Avril 2009
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37

    Informations forums :
    Inscription : Avril 2009
    Messages : 275
    Points : 102
    Points
    102
    Par défaut Affecter une couleur à chaque régions d'une image ?
    Bonjour

    donc voilà je veux une classe équivalente à colormap en Matlab, c.à.d à partir d'une matrice labélisée (genre chaque pixel est affecté à une classe); je reconstruis une image en donnant à chaque label une couleur.

    par exemple, une matrice:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     1 2 1
     2 1 2
     1 1 1
    j'aurais une image avec deux couleurs, rouge pour le 1 et vert pour le 2.
    j'espère que j'été unpeu claire.

    Merci d'avance

  2. #2
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    il faut effectuer un étiquetage des composantes connexes, puis en fonction du résultat, affecter une couleur par composante.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  3. #3
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Bonjour,

    Je pense qu'un simple parcours de votre matrice dans un composant d'affichage est suffisant.
    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
    public class MyDisplayFrame extends JFrame {
    	 private int[][] myMatrixToDisplay=
    	    {
    	    {1, 2, 1},
    	    {2, 1, 2},
    	    {1, 3, 1}
    	    };
    	private JLabel myMatrixDisplayerLabel = makeMatrixDisplayLabel();
     
    	public MyDisplayFrame() {
    		this.setSize(800, 600);
    		this.add(myMatrixDisplayerLabel);
    		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    		this.setLocationRelativeTo(null);
     
    	}
    	private JLabel makeMatrixDisplayLabel(){
    		 JLabel newMatrixDisplayLabel = new JLabel();
    		 StringBuilder sb = new StringBuilder();
    		 sb.append("<html>");
    		 for (int i = 0; i < myMatrixToDisplay.length; i++) {
    			for (int j = 0; j < myMatrixToDisplay[i].length; j++) {
    				switch (myMatrixToDisplay[i][j]) {
    				case 1:
    					sb.append("<font color=\"red\">1</font>");
    					break;
    				case 2:
    					sb.append("<font color=\"green\">2</font>");
    					break;
     
    				default:
    					sb.append("<font color=\"black\">"+myMatrixToDisplay[i][j]+"</font>");
    					break;
    				}
    			}
    			sb.append("<br>");
    		}
    		 sb.append("</html>");
    		 newMatrixDisplayLabel.setText(sb.toString());
    		 return newMatrixDisplayLabel;
    	}
     
    	public static void main(String[] args) {
    		new MyDisplayFrame().setVisible(true);
    	}
    }
    Ici, j'ai fait le choix le plus simple que je connais. Un pauvre label qui utilise la norme html. (la version 3 de mémoire et non la 5 !)
    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

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

Discussions similaires

  1. [XL-2000] compter des cellules avec une couleur de fond et une couleur de police
    Par darkvadave dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/11/2011, 16h36
  2. Réponses: 7
    Dernier message: 23/06/2011, 10h39
  3. Affecter une couleur à chaque face d'un polygone
    Par Pragmateek dans le forum OpenGL
    Réponses: 16
    Dernier message: 26/02/2009, 18h55
  4. Colorer chaque mot par une couleur differente dans un champ de texte
    Par Mettali hedi dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/01/2007, 13h20
  5. mettre une couleur au contour d'une image
    Par totoranky dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 07/12/2004, 14h37

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