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

avec Java Discussion :

Conversion RGB en gris


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut Conversion RGB en gris
    Bonjour,

    J'ai trouvé ce code pour convertir un pixel en nuance de gris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int r = (pix >> 16) & 0xff;
    int g = (pix >> 8) & 0xff;
    int b = pix & 0xff;
    int Y = ((r * 306) + (g * 601) + (b * 117)) >> 10;
    Je n'ai pas trouvé d'explication sur internet, même si j'ai rencontré ce code plusieurs fois.

    Pourriez-vous m'expliquer? Notamment les coeff 306 601 117 (qui sont normalement 0.2125 0.7154 et 0.0721 d'après ce que j'ai pu voir).

    Merci

  2. #2
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Et surtout: pourquoi mon image en sortie est bleue et non grise ?

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    Citation Envoyé par Anduriel Voir le message
    Pourriez-vous m'expliquer? Notamment les coeff 306 601 117 (qui sont normalement 0.2125 0.7154 et 0.0721 d'après ce que j'ai pu voir).
    Si tu veux mon avis, il y a une personne qui a trouvé ces valeurs et en a publié le code, et tout le monde les a reprises.

    Les coeffs au 1/1024 estiment que le vert est deux fois plus clair que le rouge, qui est trois fois plus clair que le bleu. Grosso-modo. Alors que les coeffs au 1/1 estiment que le vert est encore plus clair que ça par rapport aux autres : 3,4 fois plus que le rouge. (Mais rouge reste 3 fois plus clair que bleu.)

    J'ai aucune idée de ce qui est considéré le mieux d'habitude.

    Citation Envoyé par Anduriel Voir le message
    Et surtout: pourquoi mon image en sortie est bleue et non grise ?
    La valeur Y que tu obtiens est un entier qui indique la clarté du pixel sur une échelle de 0 à 255. Ce n'est pas une couleur RGB. Si tu veux la transformer en couleur RGB tu dois mettre cette valeur pour les trois composantes rouge, vert et bleu. Étant égales ça fera donc du gris.

    Autrement dit, faire Y + 256 fois Y + 256*256 fois Y
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Les valeurs que tu as trouvée sont bonne (celle décimale) ca c'est sure, enfin d'autre valeurs sont possible selon le "système d'affichage".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Y = r*0.2125+g*0.7154+b*0.0721
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/12/2007, 14h26
  2. Conversion RGB 24-bits vers RGB 16-bits
    Par progfou dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 08/11/2007, 22h52
  3. Conversion RGB <> HEX
    Par Tchupacabra dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/08/2007, 10h10
  4. Conversion RGB vers YCbCr et autres
    Par progfou dans le forum Traitement d'images
    Réponses: 8
    Dernier message: 12/07/2006, 08h53
  5. Conversion RGB To TLS
    Par Catbull dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 18/12/2003, 15h00

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