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!!!
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!!!
Tu fais en somme la moyenne des 3 composantes de chaque pixel que tu reporte ensuite dans le 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
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/ )
Sauf si j'ai raté un épisode de ma sorcière bien aimée, tu ne peux pas faire çatransformer une image[...] de gris en couleur![]()
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.
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.
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.
Partager