Ce n'est pas facile et cela demande de la pratique et de l'art, mais voici la théorie.
Des outils tels que Photoshop et Picasa ont une correction automatique des couleurs sur un bouton. Il doit faire des suppositions sur ce que les distributions de couleurs moyennes devraient être et ils travaillent probablement dans l'espace de couleur Lab plutôt que dans l'espace de couleurs RVB que vous connaissez. Puisque l'approche est heuristique, il se trompe pour certaines images. Par exemple, si vous prenez des images dans une forêt claire mais enveloppée, la lumière ambiante a une dominante verte et vous ne pouvez pas déplacer les couleurs pour rendre blanc un objet blanc parce que vous devez pousser trop fort dans le rouge pour foirer par exemple, une chemise verte. De même, les images du soleil orange de fin d'après-midi sont biaisées en jaune et pour corriger cela pousse trop fort dans le bleu. Il peut y avoir des valeurs d'arrêt dans les modes de couleur automatique pour éviter une compensation excessive.
Maintenant Labspace de couleurs est une bête étrange et il y a littéralement des livres entiers à son sujet. C'est un espace à trois canaux avec Luminance sur un canal (c'est le plus facile) et des canaux qui ont si peu de lien avec la façon dont nous pensons à la couleur qu'ils sont simplement appelés "a" et "b". Les canaux a et b codent toutes les données de chromaticité (tout ce qui n'est pas Luminance) dans des dimensions qui peuvent être grossièrement appelées jaune-bleu et vert-rouge. Voici une autre bizarrerie, la gamme de Lab est beaucoup plus grande que nos yeux peuvent gérer (RGB et CMYK sont tous deux plus petits que notre gamme visuelle) donnant des couleurs qui sont impossibles, par exemple un rouge profondément saturé avec presque pas de luminance. Nous pouvons le décrire, mais notre perception baisse de couleur à mesure que la luminance diminue (ce qui explique pourquoi la nuit donne à tout son aspect bleu-gris).
Alors, comment le ferais-tu si algorithmiquement? D'abord, vous devez vraiment comprendre les modèles perceptuels, transformer les images en un espace perceptuel, ajuster la distribution bi-axiale selon des attentes assez compliquées de la normale et ensuite renvoyer le résultat dans un espace RVB afin qu'il puisse être rendu. Oui, ceci peut être mis en œuvre dans une caméra de poche, mais il est non trivial et nécessite souvent des conseils (par exemple, réglage de la température de couleur attendue à ensoleillé ou ombragé, tungstène, fluorescent, etc.). Les algorithmes de guidage humain absents se tromperont plus souvent, et sans masquer manuellement des dominantes de couleur comme la forêt verte, on ne peut pas se contenter d'une image dans son ensemble.
tl; dr
essayez ceci: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=35964 – Adi