Conversion de RGB vers CIE LAB (couleurs)

Fermé
basesim Messages postés 67 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 mars 2012 - 5 mars 2012 à 08:56
basesim Messages postés 67 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 mars 2012 - 5 mars 2012 à 19:29
Bonjour,

J'aimerais savoir comment convertir une couleur donné en RGB en une couleur exprimée sous l'espace de couleur CIE LAB. Je programme en C.

J'ai l'intention d'utiliser la technique décrite sur ce site : http://www.brucelindbloom.com/index.html (dans la section math)

Donc, il faut commencer par convertir les valeurs RGB en XYZ.
Pour effectuer cette opération, il faut utiliser une "inverse companding function",
puis multiplier les valeurs avec une matrice de conversion.

Le problème, c'est que la fonction et la matrice dépendent du système de couleur RGB et de son blanc de référence. J'ignore ces deux éléments. Je crois que le système de couleur dépend du périphérique donc voici d'où viennent mes valeurs RGB :

Une image est capturé avec une webcam Lexma USB2.0 UVC VGA à l'aide de la fonction cvCaptureFromCAM de la bibliothèque OpenCV (en C). Cette image est ensuite enregistrer en jpg (avec la fonction cvSaveImage). Cette image est finalement ouverte avec la fonction IMG_Load en tant que surface SDL (bibliothèque Simple DirectMedia Layer) et les valeurs RGB y sont récupérées.
Dans les propriétés de la webcam, on peut lire que l'espace de couleur de l'acquisition est le YUV2.

Je suis sous windows 7 et apparemment, l'espace de couleur par défaut est le sRGB, tel que mentionné ici : https://docs.microsoft.com/en-us/previous-versions/windows/hardware/design/dn614618(v=vs.85)?redirectedfrom=MSDN
S'il s'agit bel et bien du sRGB, la matrice de conversion peut être récupéré du site mentionné plus haut. Par contre, je ne connais toujours pas le blanc de référence. Celui le plus commun semble être le D65 mais il me faut ses coordonnées XYZ, que je n'ai pas.

Finalement, il y a 2 variable dans l'algorithme de conversion XYZ to LAB où il est possible de choisir entre "Actual CIE Standard" et "Intent of the CIE standard". Laquelle dois-je choisir?

Donc, en résumé :

Selon mon cas,
Quel est le système de couleur RGB que je dois utiliser comme référence ?
Quel sont les coordonnées XYZ du blanc de référence?
Quelle fonction et matrice utiliser?
Quelles valeurs choisir pour les variables de l'algorithme de conversion XYZ to LAB?


Merci pour vos réponses!

1 réponse

basesim Messages postés 67 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 mars 2012 2
5 mars 2012 à 19:29
UP
0