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

Algorithmes et structures de données Discussion :

Algo de génération de N couleurs différentes


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 15
    Par défaut Algo de génération de N couleurs différentes
    Salut à tous ! Je recherche une manière de générer N couleurs, les plus différentes possibles.

    J'ai trouvé une piste, qui dit de travailler dans un espace de couleurs différent du RGB, en l'occurence CIE-Lab ou CIE-Luv.

    Je n'ai pas trouvé d'implémentation mais j'ai en revanche trouvé les formules de conversion de ces espaces vers RGB. Ma première question se situe au niveau des paramètre L a b ou L u v, quelles sont les valeurs limites et comment les faire varier pour obtenir un échantillon linéaire de couleurs. En clair quelles sont les plages de valeurs à faire varier afin d'avoir des couleurs standard (pas trop sombres et pas trop claires).
    Ensuite, pour un nombre N fixé quel paramètre dois-je faire varier aléatoirement pour obtenir un set de couleurs différents à chaque fois ? La luminance uniquement ? tous ?

    Avec ces renseignements sur les paramètres je devrais être capable de générer un tableau de N couleurs différentes n'est-ce pas ?

    Merci pour vos réponses

  2. #2
    Membre très actif

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Par défaut
    salut

    faire N couleurs différentes : sur quelle norme (quelle distance) !! ?

    si tu prends la distance euclidienne en 3 dimensions: ton algo devra être capable de placer tes N points dans un cube de côté 1 le plus loin possible les uns des autres

    si N ou N-1 est un multiplie de 8 c'est plus facile !
    (tu places les 8 premiers sur le cube, les 8 seconds sur un cube plus petit...et s'il y en a un dernier tu le mets au centre)

    si N = n^3 c'est encore plus facile !

  3. #3
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Malheureusement, ça ne marche pas en RGB puisque la distance entre deux vecteurs n'implique pas forcément une distance couleur perceptible.

    J'ai trouvé une piste, qui dit de travailler dans un espace de couleurs différent du RGB, en l'occurence CIE-Lab ou CIE-Luv.
    Oui, ces systèmes sont perceptuels, c'est une bonne idée.

    Ensuite, pour un nombre N fixé quel paramètre dois-je faire varier aléatoirement pour obtenir un set de couleurs différents à chaque fois ? La luminance uniquement ? tous ?
    si tu ne veux que travailler sur la couleur (la perception colorée), prend un L constant et fais varier le a et le b (ce sont des oppositions de couleurs)

    Une autre idée, travailler dans un système HSV. Avec H et S constants, tu ne fais varier que V (en prenant 360 modulo N)

  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
    Je me suis déjà confronté a ce genre de problème, et ma conclusion c'était qu'il est très dur de générer "beaucoup" de couleurs différentes.

    Concernant l'espace Lab/Luv ça ne marche pas si bien que cela. C'est très pratique pour générer des couleurs "proches", mais plus dur pour générer des couleurs "éloignées". Une répartition uniforme des coordonnées (l,u,v) ne donne pas vraiment une palette de couleurs.

    Le mieux que j'ai trouvé, comme le dit PRomu@ld, c'est d'utiliser HSV et de répartir uniformément sur H. On peut améliorer en y ajoutant les nuances de noir/gris /blanc.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    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 : 46
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonsoir,

    une fois que tu auras choisis ton espace de couleurs en t'aidant des conseils avisés de mes collègues, tu te retrouveras dans un problème de maximisation.
    Tu devras maximiser la somme des distances entre tes couleurs. Attention à ne pas prendre le carré qui risque de ne pas marcher dans certains cas !
    Pour cela, deux approches me viennent à l'esprit :
    - un recuit simulé.
    - un K-means en supposant que ton nombre de couleurs dans ton espace de représentation est fini. Tes N barycentres représenteront tes couleurs.
    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.

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 15
    Par défaut
    Merci pour vos réponses

    J'ai utilisé le HSB ça fonctionne bien, je fais varier la teinte uniquement et les deux autres paramètres sont aléatoires entre 0.6 et 1 (pour pas être ni trop sombre ni trop clair).

    En ce qui concerne la distribution je n'ai pas eu besoin de maximisation vu que je ne prend pas encore en compte leur distance pour l'instant ma je garde ça sous le coude.

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

Discussions similaires

  1. couleur différente d'un navigateur à un autre
    Par AMarco dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 17/06/2005, 00h03
  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. génération aléatoire de couleur claire
    Par jiraiya dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 25/02/2004, 19h52
  4. recherche algo de génération de nombre aléatoire
    Par Pascale38 dans le forum MFC
    Réponses: 2
    Dernier message: 26/01/2004, 14h20
  5. Éléments de couleurs différentes dans un CheckListBox
    Par shogoune dans le forum Composants VCL
    Réponses: 5
    Dernier message: 12/06/2003, 20h17

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