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 :

transformer une image RGB en niveau de gris


Sujet :

Traitement d'images

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 52
    Points : 45
    Points
    45
    Par défaut transformer une image RGB en niveau de gris
    Salut;

    je cherche à savoir comment transformer une image RGB 24 bits, en une image en niveau de gris.

    Merci pour votre aide.

  2. #2
    Membre éprouvé Avatar de b_reda31
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2007
    Messages : 899
    Points : 960
    Points
    960
    Par défaut
    Bonjour,
    Tout d'abord pour chaque pixel de l'image il faut extraire ses trois composantes (R,V,B).
    Ensuite là il existe plusieurs formules pour calculer la valeur en niveau de gris.Perso j'utilise la suivante:

    Gris=(R+V+B)/3.


    La caractéristique d'un pixel de niveau de gris est que ses trois composantes sont égales,çad :

    R=V=B=Gris


    Vous pouvez consulter google pour voir les diffrentes autres fomules qui existent ainsi que leur cas d'application.
    Bonne continuation.

  3. #3
    Membre confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 096
    Points : 633
    Points
    633
    Par défaut
    La C.I.E (Commission Internationale de l'Éclairage) propose, de caractériser l’information de luminance (la valeur de gris) d’un pixel par deux formules :

    Dans sa recommandation 709, qui concerne les couleurs « vraies » ou naturelles :

    Gris = 0.2125 Rouge + 0.7154 Vert + 0.0721 Bleu

    Dans sa recommandation 601 pour les couleurs non-linéaires, c'est-à-dire avec correction du gamma (image vue à partir d'un écran vidéo) :

    Gris = 0.299 Rouge + 0.587 Vert + 0.114 Bleu

    Ces formules rendent compte de la manière dont l’œil humain perçoit les trois composantes, rouge, vert et bleu, de la lumière. Pour chacune d'elles, la somme des 3 coefficients vaut 1. On remarquera la forte inégalité entre ceux-ci : une lumière verte apparaît plus claire qu'une lumière rouge, et encore plus qu'une lumière bleue.
    Source Wikipedia

  4. #4
    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 utiliser les formules conseillées dans Wikipédia.
    En effet, il faut savoir sur notre oeil n'est pas sensible de la même façon aux différentes couleurs et il faut donc éviter de mettre des coefficients identiques pour les trois canaux.

  5. #5
    En attente de confirmation mail
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 348
    Points
    348
    Par défaut
    En effet, on s'apperçoit dans la formule :

    Gris = 0.2125 Rouge + 0.7154 Vert + 0.0721 Bleu

    que le vert est prépondérant sur les autres.
    Remarque au passage, une approximation (gain de temps de calcul, conservation du format entier) est de ne garder que la composante verte.

    Néanmoins, si le facteur qualité prédomine, la formule 1 (ou 2) suivant les cas est a utiliser. NB Précaution à prendre Gris est une valeur décimale, penser à la retransformer en entier 8 bits

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par JeromeBcx Voir le message
    que le vert est prépondérant sur les autres.
    C'est un peu HS. Mais parait que c'est lié au fait que l'homme vie depuis longtemps dans un environnement relativement vert et sait donc mieux discerner des différentes de teintes dans le vert quand dans le bleu (qui n'est présent dans la nature qu'avec le ciel)

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 86
    Points : 19
    Points
    19
    Par défaut Problème transformation
    Salut, j'ai une image RGB que je veux transformer en niveaux de gris. Je voulais utiliser rgb2gray, mais j'obtiens les messages d'erreurs suivants:

    ??? Error using ==> rgb2gray>parse_inputs at 82
    MAP must be a m x 3 array.

    Error in ==> rgb2gray at 35
    X = parse_inputs(varargin{:});

    Error in ==> manuel at 15
    I2 = rgb2gray(I);


    Qqn pour m'aider? Merci!

  8. #8
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Si on savait c'était en quel langage, ça aiderait

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 86
    Points : 19
    Points
    19
    Par défaut
    Pardon, en Matlab!
    Est-ce que ça peut venir du format de l'image d'origine, à savoir du GIF?

  10. #10
    En attente de confirmation mail
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Points : 348
    Points
    348
    Par défaut
    Citation Envoyé par amphimax Voir le message
    Pardon, en Matlab!
    Est-ce que ça peut venir du format de l'image d'origine, à savoir du GIF?
    Le forum MatLab serait mieux adapté pour répondre à ta question, mais apparement, c'est le format de ta matrice qui n'est pas bon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MAP must be a m x 3 array.
    3 pour les trois composantes R G et B

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/09/2009, 19h38
  2. Transformer une Bitmap RGB en niveau de gris
    Par mathylde dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 23/07/2009, 11h43
  3. fonction pour segmenter une image de visage (niveau de gris)
    Par masterinfo dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 05/06/2009, 18h13
  4. Convertir une image colorée en niveau de gris
    Par foufar2009 dans le forum C++Builder
    Réponses: 7
    Dernier message: 20/03/2009, 00h44
  5. methode de transformation d'une image colorée en niveau de gris
    Par foufar2009 dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 18/03/2009, 12h57

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