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

 Java Discussion :

From RGB image to YUV


Sujet :

Java

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut From RGB image to YUV
    Bonjour,

    Je suis débutant en java et censée faire un programme qui rend une image de format RGB en image en luminance teinte et saturation. Un coup de pouce sera la bienvenue.

    Je sais qu'il y'a des formules pour convertir de RGB vers YUV :
    Les équations suivantes peuvent être utilisées pour dériver Y', U et V à partir des composantes R', G' et B' :

    (R', G', B', Y') ∈ [0 ; 1]4
    U ∈ [−0,436 ; 0,436]
    V ∈ [−0,615 ; 0,615]
    Cependant, les limites autorisées sur U et V dépendent de Y'.

    De R'G'B' à Y'UV :

    Y' = 0,299⋅R' + 0,587⋅G' + 0,114⋅B'
    U = 0,492⋅(B' − Y') = −0,14713⋅R' − 0,28886⋅G' + 0,436⋅B'
    V = 0,877⋅(R' − Y') = 0,615⋅R' − 0,51498⋅G'- 0,10001⋅B'


    mais je sais pas comment les programmer.


    Cordialement

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Tu veux le résultat sous quelle forme ? Une image ? Une liste de valeurs dans un tableau ?
    Tu bloques sur quoi ? La lecture des pixels d'une image ? La compréhension des formules mathématiques ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Bonjour,
    Oui sous forme d'image en faite j'ai réussi à faire la luminance qui représente la formule Y.
    Maintenant pour la saturation elle est égarle à la racine de U*U+V*V. J'ai utilisé ce code qui a marché pour U mais il me renvoie l'exception
    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
     
     
                   int red = (int)(c.getRed() * 0.615);
                   int green = (int)(c.getGreen() * 0.51498);
                   int blue = (int)(c.getBlue() *0.10001);
     
     
                  //V
                   int red1=(int)(c.getRed()*-0.147 );
                   int green1=(int)(c.getGreen()*-0.289);
                   int blue1=(int)(c.getBlue()*0.437);
                   int red1F=red1*red1 + red*red;
                   int green1F=green1*green1 + green*green;
                   int blue1F=blue1*blue1  + blue*blue;
     
     
                   int red2=(int) (Math.sqrt (red1F));
                   int green2=(int) (Math.sqrt( green1F));
                   int blue2=(int) (Math.sqrt( blue1F));
     
                   Color newColor = new Color(red2+green2+blue2,
                		   red2+green2+blue2,red2+green2+blue2);
     
     
     
     
          }

  4. #4
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    l'exception renvoie erreur comme quoi que red+green+blue est superieur à 255. Que dois je faire pour regler ce prb ?

    :Color newColor = new Color(red+green+blue, red+green+blue,red+green+blue);

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 075
    Points : 7 980
    Points
    7 980
    Par défaut
    Oui sinon afin d'éviter de réinventer la roue il y'a un truc tout fait dans la classe Color :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    nt r = ...
    int g = ... 
    int b = ...
    float[] hsv = new float[3];
     
    Color.RGBtoHSB(r,g,b,hsv)
    Mais c'est peut être un exercice donc cela te sera "inutile".

    Sinon pour ton message d'erreur il indique clairement que tu dépasses les valeurs maximales autorisée. Donc tu as une erreur de calcule je présume, et il faut la corriger.
    (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

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 185
    Points : 64
    Points
    64
    Par défaut
    Oui enfaite je suis malheureusement obligé d'utilisé la fonction donnée, oui alors je fais comment enfaite ?

Discussions similaires

  1. Get Results From Google Image
    Par scartik dans le forum C#
    Réponses: 15
    Dernier message: 04/07/2011, 09h41
  2. YUV vers RGB et vice-versa
    Par progfou dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 22/09/2006, 01h41
  3. Obtenir RGB images a la place de monochrome
    Par Battosaiii dans le forum Langage
    Réponses: 1
    Dernier message: 24/07/2006, 12h17
  4. Recuperer une image a partir des pixels RGB
    Par Battosaiii dans le forum Langage
    Réponses: 1
    Dernier message: 29/06/2006, 11h37
  5. Conversion yuv vers rgb en hardware
    Par pifpanfpouf dans le forum DirectX
    Réponses: 1
    Dernier message: 20/03/2006, 14h00

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