# Gnral Dveloppement > Algorithme & Mathmatiques > Traitement d'images >  Algorithm correction des couleurs (balance des blancs et autre)

## immuno

Bonjour,

je suis actuellement tudiant dans une cole d'ingnieur, je fait un projet d'acquisition d'image avec un capteur vido et un cran LCD (en gros, c'est une sorte d'appareil photo). J'ai donc une image brute capture par le capteur, j'aimerais pouvoir l'enregistrer et l'afficher de manire correcte, en ayant corrig les couleurs entre autre (l'image  une tendance orange).

J'ai beau chercher sur internet, je ne trouve pas une mthode pour faire une bonne balance des blancs. L'ide serait que l'utilisateur spcifie la temprature et la teinte, et l'image capture est automatiquement corrige pas le systme.

Je prcise que c'est un systme embarqu, donc je peux pas utilis de soft externe ou des librairies dj faites, et la modification sera principalement effectue en hardware (c'est un systme avec une FPGA).

Je cherche donc une manire de faire a, que a soit un algorithme et non pas du code dj fait. Je cherche surtout une corrlation entre la temprature/teinte et la correction a effectu sur chaque pixel RGB.

Si vous connaissez un bon site qui explique la chose, ou bien mme un livre, vous seriez mon sauveur, car je patauge depuis un moment avec le problme de qualit de l'image.

Je prcise dj que je suis pas du tout un expert en images, je n'ai suivi aucun cours sur le sujet malheureusement...

merci d'avance

----------


## TanEk

Ce site propose de nombreux algorithmes pour changer le blanc de ton espace de couleur ou changer carrment d'espace de couleur (RGB, YUV, etc.). A mon avis tu trouveras ton bonheur :

http://www.brucelindbloom.com/index.html?Equations.html

----------


## immuno

Merci pour le site, je connaissais pas dutout.


J'ai une petite question concernant les quations, il y a  la page http://www.brucelindbloom.com/index....n_T_to_xy.html des quations pour avoir un xd et yd  partir de la temprature, mais je vois pas du tout quoi faire avec xd et yd, a a un rapport avec l'espace xyY ? (il ne faute pas oublier que je n'y connais pas grand chose en couleurs)

Et par contre, a ne parle pas de la teinte, la temprature et la teinte font varier deux choses diffrentes, non?

----------


## TanEk

> Merci pour le site, je connaissais pas dutout.
> 
> 
> J'ai une petite question concernant les quations, il y a  la page http://www.brucelindbloom.com/index....n_T_to_xy.html des quations pour avoir un xd et yd  partir de la temprature, mais je vois pas du tout quoi faire avec xd et yd, a a un rapport avec l'espace xyY ? (il ne faute pas oublier que je n'y connais pas grand chose en couleurs)


Oui a te donne les valeurs de ton "blanc" dans l'espace xyY o x et y sont les valeurs de chromaticit et Y est la luminance si je me souviens bien.




> Et par contre, a ne parle pas de la teinte, la temprature et la teinte font varier deux choses diffrentes, non?


Et bien la temprature donne un spectre de couleur et on approxime ce spectre par une couleur dans un espace colorimtrique (RGB, xyY, etc.). Donc ce n'est pas ce que a fait varier deux choses diffrentes, a n'a tout simplement aucun rapport.

Sinon pour ton soucis, il faut que tu saches quel illuminant utilise ton appareil de capture et le transformer en un illuminant "standard" du genre D65. Et pour faire cette transformation, tu peux aller voir :

http://www.brucelindbloom.com/index....n_T_to_xy.html

http://www.brucelindbloom.com/index....n_T_to_xy.html

----------


## pseudocode

Pour utiliser les formules du site:

- tu dois d'abbord convertir tes couleurs RGB en XYZ: cf. lien "Computing RGB-to-XYZ and XYZ-to-RGB matrices."

- ensuite tu fais la correction: cf. lien "Chromatic adaptation"

- en enfin tu reviens en RGB: meme lien qu'au dbut.

----------


## immuno

merci  vous deux pour vos rponses, je pense que je pourrai mieux me dbrouiller maintenant.

----------


## immuno

Voil, j'ai implmant l'adaptation chromatique, mais j'ai une petite question concernant les valeurs. J'ai desfois  la sortie du traitement des valeurs plus grande que mon max, en RGB (plus grand que 1.0 si les nombre sont entre 0 et 1.0). Je ne sais pas si c'est normale. C'est donc quand je fait RGB ->XYZ->modif->XYZ->RGB, le RGB finale a des valeur trop grandes.

Je sais pas trop quoi en faire, car si je met que a sature  1.0, j'ai la couleur qui est fausse. Ceci arrive dans une zone trs surexpose, ou la couleur de l'image est dj trs proche du blanc pur, mais avec la teinte jauntre (ex: RGB:255,255,221 en 8 bits, il le transforme en 224,255,255).

Si je met la balance des blancs automatique sur photoshop, il met pour le mme pixel du 253,255,254, donc trs proche du blanc, comme a devrait tre. Cette zone de l'image est une feuille blanche, donc a devrait tre dans le blanc.

Pour le reste de l'image les couleurs sont correctes.

----------


## immuno

Dsol de vous redranger encore, mais j'ai encore quelque petites questions:

Dans la transformation pour l'adaptation chromatique on doit indiquer la temprature source et destination. Normalement on prend quelle temprature pour le blanc destination, 6000K? 5000K?

Et dans photoshop par exemple, on peut rgler la teinte de l'image, mais j'arrive pas  trouver comment faire a, j'ai pas vu sur le site.


merci d'avance.

----------


## pseudocode

> Et dans photoshop par exemple, on peut rgler la teinte de l'image, mais j'arrive pas  trouver comment faire a, j'ai pas vu sur le site.


Millie a gentiment retrouv son code de balance des couleurs, je le poste ici:


```

```

----------


## millie

> Millie a gentiment retrouv son code de balance des couleurs, je le poste ici:


Manque pas une partie ? (il y a un dtails d'ailleurs quand il y a un canal Alpha)


http://subversion.developpez.com/pro...nceFilter.java

----------


## pseudocode

> Manque pas une partie ? (il y a un dtails d'ailleurs quand il y a un canal Alpha)


Certes. Mais l'important tait surtout les formules de calcul de la LUT. 

Cela dit le reste du code a son utilit,  Responsable de rubrique.  ::hola::

----------

