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

C++ Discussion :

Code pour transformer une image en niveau de gris


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 58
    Par défaut Code pour transformer une image en niveau de gris
    Bonjour à tous,
    Je cherche un exemple de psydo-code qui permet de transformer une image en gris et de gris en couleur.


    Merci d'avance!!!

  2. #2
    Membre actif Avatar de Ethan 0x21
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2006
    Messages : 120
    Par défaut Moyenne des 3 composantes RVB de chaque pixel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    tableauPixel = ChargerImage()
    i=0
    TantQue i <> Taille(tableauPixel) 
       tableauPixel[i]=( CouleurRouge(tableauPixel[i]) + CouleurVert(tableauPixel[i]) + CouleurBleur(tableauPixel[i]))/3
       i++
    FinTantQue
    Tu fais en somme la moyenne des 3 composantes de chaque pixel que tu reporte ensuite dans le pixel

    Note : La ligne tableauPixel[i] = ... peut etre remplacée par tableauPixel[i] = 0.2125*CouleurRouge(tableauPixel[i]) + 0.7154*CouleurVert(tableauPixel[i]) + 0.0721*CouleurBleur(tableauPixel[i])
    pour plus de réalisme (cf : https://www.developpez.net/forums/d5...b-niveau-gris/ )

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    transformer une image[...] de gris en couleur
    Sauf si j'ai raté un épisode de ma sorcière bien aimée, tu ne peux pas faire ça

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    D'un autre côté, il devrait y avoir moyen de mapper le gradient de gris vers un autre gradient entre n'importe lesquelles deux couleurs...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2015
    Messages : 58
    Par défaut
    Merci pour vos réponses.J'ai une autre question que voici :
    Est-ce qu'en faisant 10 fois la rotation d'une image d'un angle quelconque(5° par exemple) dans un sens et ensuite 10 fois dans l'autre sens avec le même angle on peut avoir l'image d'origine?si oui comment peut-on expliquer ce phénomène?

    Je me dis que logiquement on devrait retrouver l'image d'origine vu que l'angle ne change pas et que le nombre de rotation est aussi le même.Cependant même si j'ai raison j'arrive pas scientifiquement à expliquer ce phénomène.

    Merci d'avance pour vos éclaircissement.

  6. #6
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    Je suppose que tu ne considères ici que les images raster faites de pixels (par opposition aux définitions vectorielles).

    Lorsque c'est possible, on essaie d'implémenter une transformation de manière non destructrice, en se limitant aux nombres entiers par exemple. C'est faisable pour un effet miroir, ou une rotation de 90, 180, 270 degrés.. dès que l'angle est arbitraire ou que les informations de certains pixels sont fusionnées (perdues), on peut oublier.

    La précision du calcul infinitésimal (sur l'ensemble des réels) dans un ordinateur est toujours limitée par la quantité de mémoire disponible et donc par là de la représentation qu'on a choisi d'attribuer aux données. Il est toutefois possible d'influer sur cette précision en choisissant justement une représentation adaptée au cas d'utilisation.

    Dans le cas général, il est pertinent de supposer que chaque opération donnera un résultat inexact. Dans le cas de transformations successives, c'est donc l'accumulation d'erreurs d'arrondi qui fera diverger le résultat pratique du résultat mathématique. Il est préférable d'opérer une seule rotation de 15° plutôt que trois rotations de 5°, par exemple.

    Si tu dois absolument décomposer la transformation finale, alors plutôt que de transformer effectivement les pixels de l'image à chaque étape, tu peux choisir de stocker l'image d'origine et sa transformation séparément, comme on le fait en 3D par exemple. C'est-à-dire qu'on ne calcule pas toute une nouvelle image à chaque étape, mais qu'on cumule les natures des transformations successives et leurs paramètres afin de les appliquer en une fois.

Discussions similaires

  1. [Toutes versions] Code pour insérer une image et changer ses dimensions
    Par Ragain dans le forum VBA Word
    Réponses: 6
    Dernier message: 13/11/2011, 16h38
  2. [Débutant] Méthode pour transformer une image numérique en image niveau de gris
    Par king_soft dans le forum Images
    Réponses: 4
    Dernier message: 21/03/2011, 13h33
  3. quel code pour enregistrer une image dans la base de donnée
    Par bambi98 dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/05/2009, 15h55
  4. [ImageMagick] Problème dans le code pour redimensionner une image
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 08/06/2007, 14h06
  5. [FTP] Code pour mettre une image en background
    Par Link14 dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2006, 21h10

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