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 :

Comparer deux couleurs


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 36
    Par défaut Comparer deux couleurs
    hello,

    je cherche a comparer des couleurs entre elles
    mais je ne vois pas comment m y prendre
    toutes pistes serai interressante.

    exemple j ai une couleur A :Noire

    une couleur B : Grise claire
    une couleur C : Grise foncee
    une couleur D :Vert claire

    je compare toutes ces couleurs a A

    et il doit me dire que la plus proche en toute logique est C

    voila si quelqu un a une idee je prends

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Par défaut
    Dans un de ses articles baptiste Wicht compare les couleurs en se basant sur le bleu.

    je n'ai pas retrouve l article, mais il fait ceci, si ca peut te donner une piste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class ColorComparator implements Comparator<Color> {
        @Override
        public int compare(Color c1, Color c2) {
            return new Integer(c1.getBlue()).compareTo(c2.getBlue());
        }
    }

  3. #3
    Membre averti
    Inscrit en
    Novembre 2003
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 36
    Par défaut Trouve methode
    Pour ceux que cela interresse voici des methodes forte utile:
    reecrite par mes soins si une erreur laisse 1 message thanks.

    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
    public double[] getRGBtoHSB(){
            //        Recuperation des valeurs RGB du pixel
            //
            //Transformation en valeur XYZ
            //
            //X= 0.49*R +0.31*G + 0.2*B
            //Y= 0.17697*R + 0.81240*G + 0.01063*B
            //Z= 0.01*G + 0.99*B
            //
            //Transformation en valeur chromatique
            //x=X/(X+ Y+ Z)
            //y=Y/(X+ Y+ Z)
            //z=Z/(X+ Y+ Z)
     
            int[] RGB = getDominante();
            double[] XYZ = new double[3];
            double[] xyz = new double[3];
     
            XYZ[0]=0.49*RGB[0] +0.31*RGB[1] + 0.2*RGB[2];
            XYZ[1]=0.17697*RGB[0] + 0.81240*RGB[1] + 0.01063*RGB[2];
            XYZ[2]=0.01*RGB[1] + 0.99*RGB[2];
     
            double coef = (XYZ[0]+ XYZ[1]+ XYZ[2]);
            xyz[0] =XYZ[0]/coef;
            xyz[1] =XYZ[1]/coef;
            xyz[2] =XYZ[2]/coef;
     
            return xyz;
        }
     
        public Double distanceCouleurHSB(Image testImg){
     
            //saturation
            //image.getImage().getGraphics().getColor().getHSBColor(h, s, b)
     
     
            //
            //Calculer de la Distance euclydienne
            //
            //D=srt( (x - xref) *(x - xref) + (y-yref)*(y-yref))
            //
            //
            //Comparaison des distances genre
            //
            //si (D < DMax)
            //les couleurs se correspondent ....
     
            Double d = Double.parseDouble("-1");
            double[] xyz= getRGBtoHSB();
            double[] xyz2 = testImg.getRGBtoHSB();
     
     
     
            d =  Math.sqrt(Math.pow((xyz[0]-xyz2[0]),2)+Math.pow((xyz[1]-xyz2[1]),2)+Math.pow((xyz[2]-xyz2[2]),2));
     
            return d;
     
        }
        public Double distanceCouleurRGB(Image testImg){
            //        couleur1(R1G1B1) **couleur2(R2G2B2)
            //distnace entre couleur1 et 2=RacineCarre( (R1-R2)²+(G1-G2)²+(B1-B2)² ***)
     
            Double d = Double.parseDouble("-1");
            int[] RGB = getDominante();
            int[] RGB2 = testImg.getDominante();
     
            d =  Math.sqrt(Math.pow((RGB[0]-RGB2[0]),2)+Math.pow((RGB[1]-RGB2[1]),2)+Math.pow((RGB[2]-RGB2[2]),2));
     
            return d;
     
     }
    ATTENTION Image ici est mon objet a moi
    pas d interet c est plus l algo de distance qui est interressant et la conversion de RGB en HSB
    pour la dominante c est une fonction a ma sauce qui me renvoi le RGB dominant d une image
    a vous de jouer

  4. #4
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Par défaut
    Merci beaucoup c'est vraiment cool

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

Discussions similaires

  1. mettre en couleur des cellules en comparant deux colonnes
    Par crouic5 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/06/2013, 19h30
  2. Comment faire pour comparer deux image couleur
    Par aharrar dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 10/02/2009, 10h10
  3. [STRUTS] Tag Equal, comparer deux variables
    Par logica dans le forum Struts 1
    Réponses: 2
    Dernier message: 04/06/2004, 12h01
  4. comparer deux string
    Par jul54 dans le forum MFC
    Réponses: 3
    Dernier message: 22/04/2004, 15h50
  5. [date] Comparer deux formats différents
    Par terziann dans le forum Requêtes
    Réponses: 17
    Dernier message: 21/07/2003, 15h21

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