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 :

Classer des couleurs


Sujet :

Traitement d'images

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    907
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 907
    Points : 372
    Points
    372
    Par défaut Classer des couleurs
    Bonjour,

    J'ai une liste de couleurs avec des valeurs RGB.

    Comment les classer par classe couleur ? En disant que celle çi est dans les bleus, celle la est dans les rouges ?

    Merci,
    Christophe

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 587
    Points
    188 587
    Par défaut


    Une technique serait de les grouper selon leur distance à une couleur donnée (distance euclidienne, la plus traditionnelle, en considérant que les trois coordonnées sont les composantes RGB). Ainsi, tu aurais (par exemple) trois couleurs de référence : rouge (255, 0, 0), vert (0, 255, 0), bleu (0, 0, 255) ; ensuite, tu itères dans tes couleurs (r, g, b) et tu assignes chacune à la couleur de référence la plus proche, c'est-à-dire

    Formule mathématique

    (où Formule mathématique est la composante rouge de la couleur de référence i).

    (Voir https://en.wikipedia.org/wiki/Cluster_analysis, avec les centres déjà fixés aux couleurs de référence.)
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 352
    Points
    352
    Par défaut
    le plus efficace est de changé de représentation des couleurs.
    passe en HSV au lieu de RGB
    tu aura alors la teinte exprimé en °. il te suffit alors de renseigner des plages.
    entre 340 et 20 c'est rouge puis 20 a 40 c'est orange etc...

    le liens wikipedia pour la conversion rgb HSV

    tu pourra également avoir des variations dans tes plage en mettant des critères sur la saturation et la brillance

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    907
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 907
    Points : 372
    Points
    372
    Par défaut
    Oui mais ça marche que si Saturation et Luminosité sont à 100.

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 418
    Points : 5 816
    Points
    5 816
    Par défaut
    salut

    justement on se fou de la saturation et de la brillance
    ce que l'on cherche c'est la teinte
    donc de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    0..59     rouge
    60..119  jaune
    120..179 vert
    180..239 cyan
    240..299  Bleu
    300..359 magenta
    pour le calculer a partir des valeurs RGB

    on détermine la valeur min et max
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     minval  = min(R,min(G,B));
     maxVal = max(R,max(G,B));
    la teinte à 4 possibilité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    1°) 
    si maxVal = minval 
         t = 0 
    2°) si maxVal = R
         t = ((60°*((G-B)/(maxVal - minval))+360) mod 360 
    3°) si maxVal = G 
         t = (60°*((B-R)/(maxVal - minval)) +120
    4°) si maxVal = B 
         t = (60°*((R-G)/(maxVal - minval)) +240
    le t correspond au classe de teintes précité
    la saturation et la brillance dans ce cas n'ont aucun impacte
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 051
    Points : 9 386
    Points
    9 386
    Par défaut
    Si on s'en tient à ces 6 couleurs, oui, la teinte suffit.

    S'il veut une classe 'Noir', ou bien 'Blanc', ou bien 'Rose'... ce n'est pas bon.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 418
    Points : 5 816
    Points
    5 816
    Par défaut
    salut

    dans ce cas on détermine soit même les categories
    tu peut utiliser d'autre systeme de valeur pour les couleur comme le CMYK
    on calcul le pourcentage pour chaque elements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    R' = R/255 
    G' = G/255
    B' = B/255
    le K (noir)  est egale a 
    K= 1-max(R',G',B')
    le Cyan 
    C=(1-R'-K)/(1/K)
    le magenta
    M=(1-G'-K)/(1/K)
    et le jaune
    Y=(1-B'-K)/(1/K)
    en arrondissant les resultat on peut catégoriser les couleur comme ceci par exemple
    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
    <div class="cms_table"><table width="500" class="cms_table"><tr valign="top" class="cms_table_tr"><td class="cms_table_td">COULEUR</td>
    <td class="cms_table_td">(C,M,Y,K)</td>
    </tr>
    <tr valign="top" class="cms_table_tr"><td class="cms_table_td">NOIR</td>
    <td class="cms_table_td">(0,0,0,1)</td>
    </tr>
    <tr valign="top" class="cms_table_tr"><td class="cms_table_td">BLANC</td>
    <td class="cms_table_td">(0,0,0,0)</td>
    </tr>
    <tr valign="top" class="cms_table_tr"><td class="cms_table_td">ROUGE</td>
    <td class="cms_table_td">(0,1,1,0)</td>
    </tr>
    <tr valign="top" class="cms_table_tr"><td class="cms_table_td">VERT</td>
    <td class="cms_table_td">(1,0,1,0)</td>
    </tr>
    <tr valign="top" class="cms_table_tr"><td class="cms_table_td">BLEU</td>
    <td class="cms_table_td">(1,1,0,0)</td>
    </tr>
    <tr valign="top" class="cms_table_tr"><td class="cms_table_td">JAUNE</td>
    <td class="cms_table_td">(0,0,1,0)</td>
    </tr>
    <tr valign="top" class="cms_table_tr"><td class="cms_table_td">CYAN</td>
    <td class="cms_table_td">(1,0,0,0)</td>
    </tr>
    <tr valign="top" class="cms_table_tr"><td class="cms_table_td">MAGENTA</td>
    <td class="cms_table_td">(0,1,0,0)</td>
    </tr>
    </table></div>
    il y a mille et une façon de définir une catégorie il faut simplement savoir ce que l'on veut
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  8. #8
    Membre éprouvé

    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Avril 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2014
    Messages : 133
    Points : 1 082
    Points
    1 082
    Par défaut de manière très simpe
    Bonjour,

    Tout dépend de ton application. En robotique mobile, je cherche la simplicité.
    Je n'ai matériellement pas le temps de faire une transformation d'espace
    Un classifieur parallélépipédique dans l'espace RVB peut suffire, si les couleurs
    sont suffisamment distantes.
    Le principe est un seuillage Hat par composante soit :
    Rmin <= R <= Rmax
    Vmin <= V <= Vmax
    Bmin <= B <= Bmax

    Cordialement
    Patrick Bonnin

Discussions similaires

  1. [LibreOffice][Tableur] Classer des cellules colorees par couleur
    Par bobstgely dans le forum OpenOffice & LibreOffice
    Réponses: 22
    Dernier message: 11/05/2016, 18h16
  2. TValueListEditor : Avoir des couleurs différentes par rangée
    Par Griswold dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/08/2004, 19h41
  3. Des couleurs en mode console
    Par davcha dans le forum MFC
    Réponses: 3
    Dernier message: 08/05/2004, 14h37
  4. [Debutant] gestion des couleurs ??
    Par MaxiMax dans le forum OpenGL
    Réponses: 5
    Dernier message: 26/03/2004, 08h34
  5. pb pour modifier la luminositée des couleurs
    Par mathieutlse dans le forum Langage
    Réponses: 2
    Dernier message: 08/01/2003, 14h45

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