» Journal » [ ASP ] Simuler les filtres colorés

[ GIMP ] Poser une texture sur une image ❯❯
❮❮ [ ASP ] « Lee filters Pack » for Texa

[ ASP ] Simuler les filtres colorés

10 juillet 2013 • Catégories : aftershotpro

Le logo d'AfterShot Pro

Suite logique de l’article sur la simulation des filtres gris neutres dans ASP, voici maintenant un article sur la simulation numérique du rendu des filtres optiques colorés. Rien de scientifique, que de l’empirique.

Autant les filtres gris neutres, dégradés ou non, sont clairement des filtres de pré-traitement, autant les filtres colorés ont quant à eux toute leur place au post-traitement. La preuve en est que tous les boîtiers proposent d’en simuler directement les effets pour les filtres les plus courants1. Il s’agit essentiellement de la simulation des filtres colorés pour le noir et blanc, mais aussi, et on l’oublie souvent, de la balance des blancs ! Voyons comment faire dans ASP.

Des filtres colorés…

Des filtres colorés…

Versions utilisées dans cet article
  * AfterShot : 1.0.1.10
  * zChannelMixer : 2.1.0

I. La balance des blancs

Du temps de l’argentique, le film était calibré pour une lumière de type « Lumière du jour », et seuls les photographes très exigeants tentaient de corriger la lumière. Ils disposaient pour cela de filtres colorés : ambre, bleu, vert ou encore magenta. Il s’agissait des filtres :

  • LB : « light balancing » : ambre ↔ bleu
  • CC : « color compensation » : vert ↔ magenta

Aujourd’hui on a un peu oublié cela car tous les boîtiers numériques, du modèle d’entrée de gamme au modèle professionnel le plus onéreux, proposent une fonction de balance des blancs… que l’on laisse la plupart du temps sur la position automatique !

La balance des blancs, une notion qui s’est donc vulgarisée avec l’ère de la photographie numérique, fait souvent référence à une mesure précise en degré Kelvin. Cette échelle de température casse en apparence la filiation avec les filtres optiques. On ne retrouve vraiment cette filiation que lorsque l’on va chercher les fonctions avancées de la balance des blancs : les boîtiers proposent alors un ajustement précis de la balance des blancs selon deux axes qui rappellent l’ancien temps :

  • ambre ↔ bleu
  • vert ↔ magenta

Correction avancée de la balance des blancs sur le Canon 5D mark ii

Correction avancée de la balance des blancs sur le Canon 5D mark ii

Pour la prise de vue au format brut, le raw, on peut oublier ces fonctions intégrées aux boîtiers et laisser la balance des blancs en automatique. On retrouvera les mêmes fonctions dans le logiciel de développement. Dans AfterShot Pro, il faut aller sur l’outil « Balance des blancs », que l’on retrouve sur l’onglet « Couleurs ».

  • Le curseur « Température » permet de régler un filtre de type LB entre l’ambre et le bleu.
  • Le curseur « Teinte », il fait office de filtre CC entre le vert et le magenta.

Le panneau « Balance des blancs »

L'outil « Balance des Blancs »

Ça peut paraître simpliste mais ça marche assez bien. Prenons pour exemple cette image déjà publiée sur le site : L’aube. Sur cette image, j’ai utilisé la balance des blancs comme filtre coloré en deux endroits. Dans un premier calque, la balance des blancs a été définie à 8000K pour réchauffer le rayon de lumière. Ensuite, dans un second calque, la balance des blancs a été réglée à 5240K pour modifier significativement la couleur de l’eau du Saint Laurent. Cette méthode m’a donné de bien meilleurs résultats que ce que j’ai pu obtenir avec les autres outils de corrections colorimétriques.

L'aube sur Baie Saint Paul

L'aube
(survolez l'image avec la souris pour annuler les filtres)

La balance des blancs dans le logiciel de post-traitement est bel et bien un filtre coloré numérique avec l’avantage sur les filtres optiques de pouvoir être appliquée localement. Cependant cette méthode trouve parfois ses limites sur les valeurs extrêmes des deux curseurs.

II. Les filtres colorés pour le noir et blanc

Les méthodes numériques sensées simuler tel ou tel filtre coloré pour le noir et blanc sont toutes empiriques et perceptuelles. Il s’agit fréquemment d’opérations très simples sur les canaux chromatiques et on s’en accommode parce que cela rend bien. Après tout, cela n’a pas grande importance si les opérations n’ont rien de scientifique. Les filtres optiques eux-même ne détiennent aucune vérité dans le rendu de la scène. Leur intérêt n’est qu’artistique.

II.1 Les mélangeurs de canaux

Parmi les solutions simples qui donnent des noirs et blancs intéressants, on retrouve fréquemment le mélangeur de canaux. C’est en effet un outil quasi universel. Intéressons-nous d’abord à son fonctionnement.

Le mélangeur de canaux de GIMP

Le mélangeur de canaux de GIMP

II.1.1 Que sont les canaux ?

Dans l’espace RGB qui représente la synthèse additive des couleurs, les canaux sont les trois composantes primaires : le Rouge (R), le Vert (G) et le Bleu (B). La couleur, dans cet espace, est défini par la valeur (ou luminance) de chacun de ces canaux. La luminance d’une couleur est égale à la moyenne de la luminance des trois canaux. Lorsque la part de ces canaux est égale, la couleur est un gris. La luminance d’un gris vaut donc la luminance de l’un de ses trois canaux. Par exemple :

(1, 0, 0) représente un rouge « pur ». L = 0.33
(0.5, 0.5, 0.5) représente le gris médian. L = 0.5

II.1.2 Quelles sont les opérations sur les canaux ?

Il s’agit de transformer la couleur C en couleur C’ :

C(R, G, B) → C'(R', G', B')

en définissant trois fonctions mathématiques qui vont affecter chacun des trois canaux à partir de leurs valeurs initiales :

R' = f(R, G, B)
G' = g(R, G, B)
B' = h(R, G, B)

Lors d’une conversion en noir et blanc (en niveaux de gris pour être précis), où R’ = G’ = B’, il n’y a plus qu’une seule équation :

R' = G' = B' = L' = f(R, G, B)

Pas de panique pour les non matheux, en pratique ces opérations sont très simples. Pour réaliser ces opérations, on utilise un « mélangeur de canaux » qui, même dans les logiciels les plus célèbres, ne permet pas d’aller au delà d’un calcul du type :

R' = xr*R + yr*G + zr*B
G' = xg*R + yg*G + zg*B
B' = xb*R + yb*G + zb*B

Ou pour une conversion en noir et blanc :

L' = x*R + y*G + z*B

Et d’ailleurs l’équation n’apparaît pas. Chaque triplet (x, y, z) est représenté par trois curseurs. Ceci prouve bien que pour obtenir de beaux résultats, il n’est pas nécessaire de chercher la complexité.

II.1.3 La roue chromatique

Pour la suite on va seulement retenir que d’un point de vue infographiste, où la représentation des couleurs est circulaire, on considère que les filtres laissent passer leur propre couleur et qu’ils bloquent leur couleur complémentaire, diamétralement opposée.

Roue chromatique

La roue chromatique
Les couleurs complémentaires (en synthèse additive) sont diamétralement opposées

Ceux qui ont besoin d’explications plus précises et scientifiques sur la photographie en noir et blanc et les filtres colorés, trouverons leur bonheur sur internet ou à la bibliothèque. Il y a pléthore de publications sur le sujet qui, même si elles datent, restent parfaitement valables.

II.2 Les outils disponibles dans ASP

ASP ne dispose pas nativement d’un mélangeur de canaux même si le module noir et blanc s’en rapproche. La preuve qu’un vrai mélangeur de canaux est un outil indispensable, surtout pour la conversion en noir est blanc, est que son absence dans ASP en a contrarié plus d’un. Au moins quatre greffons2 proposent de combler ce manque mais on ne retiendra que zChannelMixer, car il est vraiment l’équivalent de ce que l’on retrouve dans GIMP ou Photoshop.

II.2.1 Le module noir et blanc

Pour transposer une photo en noir et blanc dans ASP, on pense naturellement en premier lieu au module « Module noir et blanc » fourni par défaut. Ce module propose plusieurs méthodes de conversion. Malheureusement leur dénomination n’est pas très explicite et la documentation officielle est laconique à ce sujet.

Le panneau « Module Noir et Blanc »

Le Module Noir et Blanc

Pour en savoir plus, il faut regarder dans les sources du module. Corel les a rendu accessibles car ce module sert d’exemple pour les développeurs de greffons. La définition des filtres est contenue dans le fichier BlackAndWhiteFilter.cpp:24-69. En langage « humain », voici quelles sont les opérations effectuées par le module noir et blanc d’ASP :

Dénomination ASP Opération effectuée en chaque point
Luminance La valeur de la composante grise sera égale à la somme ~0.30x la composante Rouge plus ~0.59 la composante Verte et ~0.11x la composante Bleue
Rouge - Vert maximum La valeur de la composante grise sera égale au maximum entre la composante Rouge et composante Verte
Rouge - Bleu maximum La valeur de la composante grise sera égale au maximum entre la composante Rouge et composante Bleue
Vert - Bleu maximum La valeur de la composante grise sera égale au maximum entre la composante Verte et composante Bleue
Rouge - Vert minimum La valeur de la composante grise sera égale au minimum entre la composante Rouge et composante Verte
Rouge - Bleu minimum La valeur de la composante grise sera égale au minimum entre la composante Rouge et composante Bleue
Vert - Bleu minimum La valeur de la composante grise sera égale au minimum entre la composante Verte et composante Bleue
Canal Rouge La valeur de la composante grise sera égale à la valeur de la composante Rouge
Canal Vert La valeur de la composante grise sera égale à la valeur de la composante Verte
Canal Bleu La valeur de la composante grise sera égale à la valeur de la composante Bleue
Rouge opposé à Vert et Bleu La valeur de la composante grise sera égale au maximum entre 0.67x la composante Rouge et la somme 0.7x la composante Verte additionnée à 0.3x la composante Bleue

La formule de la luminance est un classique pour convertir une image en noir et blanc avec un rendu assez naturel. Ce rendu restitue assez bien la luminosité telle que perçue par l’œil humain. Le rendu de ce filtre est différent d’une simple désaturation. Pour recoller au sujet, on pourrait qualifier ce rendu de « rendu sans filtre ».

Les conversions canal rouge, canal vert, canal bleu, sont sensées représenter des filtres colorés (voir ici). Ça reste théorique et en pratique le rendu est loin de ce que l’on est habitué de voir avec les filtres optiques du temps de l’argentique. D’ailleurs les opérations que l’on trouve dans la littérature pour simuler les filtres rouge, vert ou bleu sont un peu plus complexes.

Les autres opérations sont en revanche assez peu courantes dans la littérature. Il est difficile d’y faire un rapprochement avec un quelconque filtre coloré. A voir, en fonction des rendus.

Voici un exemple à partir de « Beauté froide  », une image déjà publiée dans la galerie. En survolant l’image avec la souris, on pourra comparer la version « Luminance » du module avec la version par simple désaturation.

Beauté froide

La version « Luminance » du module Noir et Blanc
(Survolez l'image avec la souris pour faire apparaitre la version par simple désaturation)

II.2.2 Avec l’outil équilibre des couleurs

Il est également possible de faire du noir et blanc nativement dans ASP avec l’outil « équilibre des couleurs ». Cet outil est une sorte de mélangeur de canaux sauf qu’il ne travaille pas dans l’espace RGB mais dans les espaces TSL et TSV. Cela dit ce module reste un peu une boite noire. On constate simplement que les trois premiers curseurs restent actifs, même après désaturation complète de l’image.

Le panneau « Equilibre des couleurs »

L'outil « équilibre des couleurs »

Lorsque l’on a la roue chromatique en tête, on voit très clairement que ces trois curseurs permettent de décaler une couleur entre sa dominante et sa complémentaire. De là penser pourvoir imiter un filtre coloré il n’y a qu’un pas. Pour rappel, d’un point de vue infographiste, un filtre coloré laisse passer la lumière dans sa couleur et la bloque dans sa complémentaire. On pourrait donc croire, par exemple, qu’en poussant simplement le curseur cyan/rouge à son maximum sur la droite on simulerait un filtre rouge. C’est malheureusement un peu trop simple, et les mélangeurs de canaux classiques (dans l’espace RGB) donnent de meilleurs résultats.

Voici un exemple, toujours à partir de la même photo « Beauté froide  ». Cet exemple montre bien qu’il est possible de travailler les noirs et blancs dans ASP sans faire appel à un greffon tiers. Les réglages suivants tentent d’imiter un filtre rouge :

  • Saturation : -100
  • Cyan/Rouge : +100
  • Magenta/Vert : -80
  • Jaune/Bleu : -80
  • TSL

Beauté froide

Une version « équilibre des couleurs »
(Survolez l'image avec la souris pour faire apparaître la version par simple désaturation)

On peut être également tenté d’utiliser l’outil « Correction des couleurs ». Malheureusement il n’est d’aucune aide car il n’a aucun effet sur l’image après une désaturation complète. D’après le pipeline3 d’ASP, cet outil n’intervient qu’après l’outil « équilibre des couleurs ». Une fois l’image désaturée, il ne peut plus « voir » les couleurs.

Le panneau « Correction des couleurs »

L'outil « Correction des couleurs »

Enfin, on n’oubliera pas que l’on peut toujours affiner l’image en noir et blanc en utilisant les outils d’exposition du logiciel, ainsi qu’avec les courbes et les niveaux.

II.2.3 Avec un mélangeur de canaux : zChannelMixer

Il existe d’autres greffons pour travailler les noirs et blancs2 mais on ne retiendra que zChannelMixer car il est vraiment l’équivalent de ce que l’on retrouve dans GIMP ou Photoshop.

L'interface du greffon zChannelMixer

Le greffon « zChannelMixer »

L’interface de zChannelMixer peut paraître déroutante au début car il y a beaucoup de curseurs. Reprenons l’exemple de l’introduction pour convertir la couleur C en C’ :

C(R, G, B) → C'(R', G', B')

par trois équations :

R' = f(R, G, B)
G' = g(R, G, B)
B' = h(R, G, B)

du type :

R' = xr*R + yr*G + zr*B…

Eh bien, le R' correspond au rectangle rouge, le xr, le yr et le zr correspondent respectivement aux trois curseurs « rouge », « vert » et « bleu » au sein de ce rectangle rouge. Et ainsi de suite pour G' et B'. Comme on peut le voir sur l’illustration ci-dessus, zChannelMixer est configuré par défaut en invariant.

R' = 1*R + 0*G +0*B = R…

Pour produire une image en noir et blanc, les trois rectangles colorés doivent être identiques. zChannelMixer simplifie la tâche en proposant de synchroniser les trois canaux. Il faut cocher « Lock B&W ». La synchronisation des curseurs ne se fait pas au moment où l’on clique la case « B&W », mais seulement lorsque l’on déplace un curseur. Puisqu’on se retrouve désormais avec un outil assez universel, plus la peine de réinventer la roue. Il suffit de récupérer les valeurs classiques de la littérature. Voici quelques liens :

Voici un exemple, toujours à partir de la même photo « Beauté froide  ». Les réglages suivant tentent d’imiter un filtre rouge :

  • Lock B&W
  • Rouge : 90
  • Vert : 10
  • Bleu : 0

Beauté froide

Une version « zChannelMixer »
(Survolez l'image avec la souris pour faire apparaître la version par simple désaturation)

II.3 Gestion du bruit

Même si le bruit numérique est imperceptible sur l’image d’origine, il peut, une fois amplifié par des valeurs extrêmes du mélangeur de canaux, ressortir de façon désastreuse. Lorsque l’on converti une image en niveau de gris, le bruit chromatique se transforme en bruit de luminance et donne alors à l’image un aspect granuleux qui n’a malheureusement rien à voir au grain argentique.

Pour minimiser ce phénomène, on peut utiliser le greffon Wavelet Denoise (WD). Il remplace sans rougir Noise Ninja Pro. WD agit tôt dans le pipeline3, avant la conversion en noir et blanc. Il faudra donc utiliser le curseur « Couleur / Seuil ».

Mais attention, en noir et blanc cela s’apparente à un traitement de luminance ce qui peut donc provoquer une perte de détail et donner un aspect trop lisse.

L'interface du greffon Wavelet Denoise

Le greffon « Wavelet Denoise »

III. Conclusions

Le champ des filtres colorés n’a pas été balayé dans son intégralité, ni celui des méthodes pour en simuler les effets. Mais on en a vu l’essentiel : les méthodes les plus simples pour les filtres les plus courants. Ces méthodes (la balance des blancs et les mélangeurs de canaux) sont quasi universelles ce qui nous affranchit d’une dépendance à un logiciel. Ce qui a été dit ici est également valable pour GIMP, Photoshop et d’autres encore.


Articles similaires :


Notes :

  1. Pour la prise de vue au format jpeg.

  2. Au moins zChannelMixer, MathBox, Mix3 et Equalizer. Equalizer est désormais fournis avec ASP.

    Un mot rapidement au sujet de MathBox ; Ce greffon est, à ma connaissance, le seul mélangeur de canaux qui permet d’écrire des équations plus complexes que la classique fonction proportionnelle :

    R' = xr*R + yr*G + zr*B…
    

    Il est en effet possible d’utiliser des fonctions trigonométriques, hyperboliques, logarithmiques, exponentielles, puissances etc… Il est même captable de gérer les opérateurs conditionnels ! La liste complète des fonctions qu’il est capable de gérer est ici. C’est intéressant sur le papier, mais en pratique, comme cela a été dit, il n’est pas nécessaire de chercher la complexité pour obtenir de beaux noir et blanc. 2

  3. Le pipeline du logiciel, c’est une liste ordonnée qui défini dans quel ordre s’enchaînent les opérations lors de la conversion du raw. L’opération de débruitage intervient avant la correction de la balance de blancs, elle même intervenant avant la correction de l’exposition ou des corrections colorimétriques etc… Les greffons s’insèrent dans cette liste décalant ainsi les indices. Cette liste apparaît dans le journal d’AfterShot Pro. Elle ressemble à la liste suivante :

    0  :  "UncompressedRawData"
    1  :  "RawNoise"
    2  :  "Demosaic"
    3  :  "TiffSrc"
    4  :  "JpegSrc"
    5  :  "Mip"
    6  :  "PreScalingFilter"
    7  :  "CameraRgbToWorkingspace_Rendered"
    8  :  "CloneLayer"
    9  :  "HealRendererFilter"
    10 :  "NoiseNinja"
    11 :  "SpatialDistortion"
    12 :  "Positive Vignette"
    13 :  "Mirror"
    14 :  "Crop"
    15 :  "WhiteBalance"
    16 :  "AutoLevel"
    17 :  "Exposure"
    18 :  "FillLight"
    19 :  "CameraRgbToWorkingspace_Raw"
    20 :  "Sharpen"
    21 :  "Invert"
    22 :  "PerfectlyClear"
    23 :  "Color"
    24 :  "SelectiveColor"
    25 :  "RgbToLab"
    26 :  "LabToRgb"
    28 :  "Curves"
    30 :  "Negative Vignette"
    

    2

[ GIMP ] Poser une texture sur une image ❯❯
❮❮ [ ASP ] « Lee filters Pack » for Texa

Lister les articles par rubrique