Essais de rattrapage d’une balance des blancs incorrecte

Par Charles VASSALLO

Cette page rapporte quelques réflexions sur le rétablissement des couleurs quand on a fait une erreur importante sur la balance des blancs au moment de la prise de vue.

En général, faute de mieux, on se contente de rééquilibrer les niveaux couleur par couleur ou on applique une correction par courbes linéaires comme indiqué ci contre.


Les résultats ne sont jamais très bons. Évidemment, si on n’a rien de mieux, on passera tout de même par là… Si on a un Photoshop récent, on peut aussi essayer de corriger par les «filtres de couleur» 85 ou 81, mais on verra que ça ne va pas très loin non plus.

Un exemple «théorique»

Tout d’abord, je me suis imprimé une imitation de «Color Checker». Le résultat n’est sûrement pas aussi bon que les chartes originales vendues par Gretag-Macbeth, ne serait-ce que parce que les colorants pigmentaires de mon impri­mante doivent avoir davantage de métamérisme, mais ce devrait être bien assez bon pour les essais qui vont suivre.

C’est essentiellement sur les gris de la dernière rangée que nous allons discuter, mais j’ai laissé les autres couleurs pour que l’on puisse voir comment elles sont affectées par des balances de blanc incorrectes. Bien entendu, on peut juger que ce premier essai constitue une approche bien théorique qui n’a pas grand chose à voir avec les «vraies» photos de tous les jours… mais on verra plus loin que celles-ci peuvent être encore plus difficiles à rattraper.

J’ai photographié cette charte dans une lumière assez mal définie : photographie en intérieur dans une pièce largement vitrée sous un franc soleil de midi, mais à l’ombre, donc dans la lumière partiellement rediffusée par des murs recouverts d’une toile écrue jaune-brun clair, qui ne pouvait que «réchauffer» l’éclairage ambiant.
J’ai fait trois clichés avec mon APN :
(i) image JPEG en mettant le réglage du blanc sur 3000K (éclairage artificiel, température certainement trop basse)
(ii) image JPEG en mettant le réglage du blanc sur 5500K (ambiance ensoleillée, température correcte à l’extérieur mais pas pour la lumière diffusée en intérieur)
(iii) image en RAW.

Comme on pouvait s’y attendre, aucune des deux images JPEG n’est correcte. On voit ci-dessous le résultat des deux premières prises de vue (colonne de gauche) et le résultat de la tentative de rattrapage avec les corrections linéaires expliquées plus haut (j’ai ajusté les pentes des différentes corrections de manière à remettre le premier blanc de la charte à sa valeur théorique Lab=(91,0,0) mesurée sur le papier)

Aucune des deux images JPEG corrigées n’est satisfaisante. Après correction, la première image reste trop bleue dans les gris moyens et la deuxième trop rouge. Et l’ensemble des couleurs garde un aspect assez douteux…

Par contre, l’image raw traitée de manière à amener ce premier blanc vers la valeur cible (L=91, soit des composantes rvb toutes égales à 229 en adobe-98) est beaucoup plus satisfaisante.

Tous ses gris ne sont pas rigou­reusement neutres, mais ceux de notre charte imprimée ne l’étaient pas davantage, et puis l’éclairage de la scène était certainement assez loin d’une courbe de corps noir (la figure ci-contre a été obtenue en affichant 4000K dans le module raw, assez loin de l’éclairage solaire du moment), ce qui doit aussi provoquer quelques légers glissements de couleur.

Pour bien enfoncer le clou : avec des corrections par courbes plus compliquées (cf à droite), on peut corriger tous les gris de l’image, mais pas les couleurs.

L’image ci-dessous montre ce qui se passe dans le cas de nos deux images JPEG : on peut ainsi retrouver les mêmes gris dans les deux chartes, mais il y reste de grosses différences dans les couleurs.

En conclusion, on ne peut pas rattraper de manière complétement satisfaisante une grosse erreur dans la balance des blancs au moment de la prise de vue dans une image JPEG, du moins pas avec de simples corrections par courbes.

Essais avec les «filtres de couleur»

Du temps des films argentiques, on avait le choix entre les films «lumière du jour» et les films «lumière artificielle» et, si nécessaire, on pouvait utiliser les uns à la place des autres en vissant sur l’objectif des filtres Wratten 85 ou 81. Ce n’était évidemment pas aussi bon que de travailler avec le film adapté, mais c’était mieux que rien.

Depuis sa version 8 (CS), Photoshop propose une simulation de ces filtres dans ses réglages colorimétriques ou dans ses calques de réglages. L’image suivante montre ce qu’on peut ainsi obtenir dans le cas d’une image réelle. On voit à gauche l’image avec une exposition correcte (réglage «beau temps» à 5000K) puis l’image prise avec un réglage pour la lumière artificielle, et, en dessous, deux tentatives de rattrapage avec le filtre couleur 85.

Dans les deux cas, on reste très loin des couleurs de référence, mais on peut toute­fois admettre qu’on aboutit à une sorte de réinterprétation des couleurs, plutôt bien équilibrée… (surtout la 4ème image) qui serait même très intéressante si elle était volontaire, de sorte que la conclusion du temps de l’argentique — que c’est mieux que rien –, reste valable.

A titre de comparaison, l’image ci-contre montre ce qu’on obtient avec une simple égalisation des histogrammes.

Ce n’est pas vraiment plus près des couleurs d’origine, et, dans ce cas précis, le résultat n’est pas vraiment heureux (il se peut qu’on rencontre des images où ça se passerait mieux).

La difficulté avec ces images est que les histogrammes sont généralement écrêtés, soit sur la gauche soit sur la droite ;

à titre d’exemple, on voit ci-contre ceux de notre image «bleue» :

il manque tous les rouges sombres, mais aussi les verts et les bleus les plus intenses.

Bref, comme l’expo­sition erronée a fait perdre une partie importante de l’information sur les couleurs, on peut concevoir qu’on aura du mal à récupérer l’image.

Encore une autre recette potentiellement utile pour ces cas difficiles : appliquer un calque de réglage «couleur unie» en mode couleur, avec le masque des ombres dans le masque de fusion, l’ajustage se faisant en cherchant la bonne couleur à mettre dans le calque.

Inutile d’essayer la correction linéaire en γ=1 !

On attribue généralement le succès du rééquilibrage des blancs en raw et son échec à partir des images JPEG au fait qu’on travaille avec un γ=1 dans le module raw et avec un γ=2,2 sur les composantes RVB des images JPEG. On va voir que c’est un peu plus subtil que cela.

Nous allons commencer par un peu de travail inutile ; c’est comme ça que le métier rentre — et puis, cela pourra peut-être resservir un jour.

Bref, nos JPEG impliquent un γ de 2,2 ? (ou approchant ?) Qu’à cela ne tienne ! Il est très facile de se fabriquer un Adobe-98-modifié avec un γ=1.

Dans les préférences couleurs de Photoshop :
(i) Amener Adobe RGB (1998) comme l’espace de travail RVB par défaut
(ii) Dans la liste déroulante des espace de travail, choisir ensuite RVB personnalisé. Dans le dialogue qui suit, changer le nom et prendre γ=1. Fermer le dialogue
(iii) Revenir à la liste déroulante et choisir cette fois Enregistrer sous ; prendre le même nom
(iv) Relancer Photoshop : vous verrez votre Adobe-98-modifié dans les espaces de travail possibles.

Donc, vous partez de vos images JPEG en Adobe-98 ou en sRGB. Convertissez-les dans votre Adobe-98 modifié (si vous êtes inquiet des erreurs d’arrondi, passez d’abord en 16 bits; ça ne changera rien au final). Vous êtes maintenant en γ=1. Refaites la correction sur les trois primaires par niveaux ou par courbes : on arrive aux mêmes couleurs (non satisfaisantes) qu’avec la correction initiale dans le γ d’origine !

Si vous n’en croyez pas vos yeux, reconvertissez vers l’Adobe-98 ou le sRGB d’origine et reportez le résultat dans un calque par dessus l’image initiale que vous avez modifiée directement. Passez en mode différence pour comparer les couleurs : tout passe au noir… Ce sont les mêmes couleurs !

Bien entendu, on pouvait éviter tout ce travail avec un peu de calcul, mais ça ne convaincra que les gens qui peuvent calculer. Les autres devront faire l’expérience que je viens de décrire.

Dans notre expérience, les couleurs sont décrites par deux triplets RVB, X2 dans l’espace avec γ=2,2 et X1 dans l’espace avec γ=1, à comprendre chacun comme une matrice colonne des 3 composantes RVB. Dans chacun de ces deux espaces, l’action des corrections linéaires s’écrit
X_corrigé = C · X_brut,
à comprendre comme une relation matricielle avec une matrice C diagonale. Cette relation vaut pour toute l’image, avec partout le même C.

Le passage entre les espaces Adobe-98 original et modifié s’écrit [B.L.]
           X2= X1 ^ (1/γ)     ou     X1= X2 ^ γ     (avec γ=2,2)

En conséquence, la correction directe sur l’image JPEG en Adobe-98 se traduit par
(1)       X2_corrigé,direct = C2 · X2_brut
alors que le passage par l’espace avec γ=1, suivi de la correction dans cet espace, puis du retour à l’espace initial se traduisent successivement par
           X1_brut= X2_brut ^ γ
           X1_corrigé = C1 · X1_brut,
           X2_corrigé,nouveau= X1_corrigé ^ (1/γ)
soit enfin, à cause du caractère purement diagonal de C1,
(2)       X2_corrigé,nouveau = C1^(1/γ) · X2_brut,

Les équations (1) et (2) ont la même forme. Comme on s’est arrangé pour retrouver la même couleur pour un pixel particulier (le blanc de la charte), il s’ensuit que les matrices de correction sont identiques, et cela pour toute l’image. On retrouve donc les mêmes couleurs (X2_corrigé,nouveau=X2_corrigé,direct) pour tous les points.

Alors, qu’est ce qui se passe en raw quand on règle la température de couleur ?

Les essais ou le petit calcul précédents montrent que ce n’est pas une simple correction (linéaire ou non) par courbes sur les RVB bruts.

A ce que j’ai compris (aucune garantie !) l’opération réalisée est plutôt un mélange de couches, c.à.d. une opération linéaire, mais non diagonale, dans l’espace des RVB bruts. L’élévation à la puissance 1/γ quand on passe ensuite en sRGB ou en Adobe-98 crée alors un mélange non linéaire entre les couches. Si on n’a pas fait une bonne évaluation de la température de couleur sur les RVB bruts, l’erreur résultante sera extrêmement difficile à rattraper.