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 :

de RVB en gris => comment choisir les params??


Sujet :

Traitement d'images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut de RVB en gris => comment choisir les params??
    hello,

    Je veux convertir une image RVB en niveaux de gris. En faisant un histogramme sur chaque couleur je me rends compte que le canal vert est beaucoup plus étroit que les autres, or j'utilise la formule suivante:

    Y = 0.299*R + 0.587*G + 0.114*B

    Je voulais savoir si je pouvais calculer les 3 coefficients (0.299 ; 0.587 ; 0.114) en tenant compte de ma répartition RVB, de tel sorte d'obtenir une image plus "fine", dans mon exemple de diminuer le facteur pour le canal vert.

    existe-il un calcul particulier??

    ps: je sais bien que c'est pas une question d'algorithme mais je sais pas trop dans quel forum aller

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

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

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

    tout les softs d'imagerie font la conversion, donc il existe des algos.

    Le plus simple ne serait il pas de faire la moyenne des trois 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.

  3. #3
    Membre éprouvé Avatar de hansaplast
    Homme Profil pro
    Artisant logiciel
    Inscrit en
    Septembre 2005
    Messages
    950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Artisant logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 950
    Par défaut
    j'aurait dit une moyenne pondérée, afin de palier aux contraste trop forts...

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut
    Voici le genre d'histogramme que j'obtiens:

    Je ne suis pas très sur que la moyenne des 3 canaux soit très performants...

    Toto13 sais tu ou je pourrais trouver ce genre d'algo (j'ai dans l'idée que ça utilise la moyenne et l'ecart type mais je sais pas exactement le calcul a appliquer)
    Images attachées Images attachées  

  5. #5
    Membre chevronné Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Par défaut
    Salut la formule :

    Y = 0.299*R + 0.587*G + 0.114*B

    correspond au calcul de la luminance. C'est la luminance telle que les êtres humains la perçoivent (brillant, sombre, etc...). L'oeil humain est plus influencé par la luminance des composantes vertes que celles des composantes bleues et rouges. C'est donc pour cela que le vert y est prédominant.

    C'est également pour cela, il me semble, que sur les filtres couleur des capteurs couleur , on trouve 2 pixels vert pour 1 pixel rouge et 1 pixel bleu en maille carrée (et aussi en maille hexagonale je crois).

    Le mode de conversion d'une image RGB en niveau de gris n'est pas "normalisé" et il ne tient qu'à toi de définir des propres coefficients de pondération.

    ... en tenant compte de ma répartition RVB, de tel sorte d'obtenir une image plus "fine", dans mon exemple de diminuer le facteur pour le canal vert.
    Par contre ton post traduit un induit un autre problème je pense. Peut-être l'espace RGB dans lequel tu travailles n'est pas celui qui correspond le mieux à ton problème. Si tu veux isoler un ensemble de teintes particulier, passe en HLS.

    A+

    Flo.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 277
    Par défaut
    pour resoudre mon probleme, j'ai fait un histogramme sur chaque canal (tabR, tabG, tabB), l'histo a une longeur de 22.

    et voila le travail:

    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
        int r, g, b;
        r = g = b = 22;
     
     
        for(i=0;i<22;i++)
        {
            if(tabR[i] == 0) r--;
            if(tabG[i] == 0) g--;
            if(tabB[i] == 0) b--;
        }
     
        int sum = r + g + b;
     
        *R = (float) r / sum;
        *G = (float) g / sum;
        *B = (float) b / sum;
    merci pour votre aide

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

Discussions similaires

  1. comment choisir les adresses IP des ordinateurs du réseau ?
    Par saadi-amina dans le forum Administration
    Réponses: 2
    Dernier message: 16/09/2008, 09h38
  2. Comment choisir les colonnes d'un fichier à charger?
    Par Monfy29 dans le forum SQL*Loader
    Réponses: 2
    Dernier message: 04/08/2008, 11h58
  3. Comment choisir les index d'une table
    Par whitespirit dans le forum Débuter
    Réponses: 10
    Dernier message: 27/05/2008, 07h53
  4. Comment choisir les bons chiffres pour ma somme?!
    Par rhum_un dans le forum Excel
    Réponses: 3
    Dernier message: 29/04/2008, 17h35
  5. [Lumières] Comment choisir les lumières à activer ?
    Par bigquick dans le forum OpenGL
    Réponses: 3
    Dernier message: 30/10/2004, 01h58

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