Mode d'emploi

(dernière mise à jour :  le 13/02/2002 )

& Didier Leboutte

Next

Désaturation des rouges et des cyans

L'explication de Frans Van de Poel pour chasser les fantômes.

Il se peut que dans votre scène il se trouve des objets dont la couleur est très proche du rouge pur ou du cyan pur. Dans ce cas, l'un des 2 yeux voit la couleur, et l'autre du noir. Cela produit un effet flash très désagréable. Pour corriger cela, AnaBuilder utilise une technique de rééquilibrage des teintes paramétrable. Pour l'utiliser, il est nécessaire de comprendre rapidement comment elle fonctionne :
  1. pour chaque point, le soft estime la contribution du rouge à la luminosité.
  2. si cette contribution dépasse un seuil, le rouge est progressivement retiré pour être ajouté au vert et au bleu.
  3. si cette contribution descend en dessous d'un autre seuil, le vert et le bleu sont progressivement retirés pour être ajoutés au rouge.
Les paramètres par défaut permettent de travailler à luminosité constante, et traitent le vert à le bleu de façon équivalente. Je les ai fixés à mon goût. En les modifiant, on peut obtenir un résultat soit plus lumineux, soit plus sombre, soit plus rouge, soit plus bleu, soit plus vert, etc..

Les principes suivants sont respectés :
  1. dans une fourchette de teintes "équilibrée" déterminée par les deux seuils, toutes les couleurs restent inchangées.
  2. en dehors de cette fourchette, l'action est progressive (linéaire) de manière à préserver les nuances de teintes.
Cliquez sur la case à cocher "desat". La fenêtre des paramètres de désaturation apparaît.
  1. Le premier paramètre du soft peut prendre n'importe quelle valeur. Il est utilisé pour symétriser les 2 seuils.
  2. Les 2 seuils sont en principe compris entre 0 et 1.
  3. Les contributions de rééquilibrage peuvent prendre n'importe quelles valeurs et s'entendent "pour 1".
En jouant sur les paramètres de rééquilibrage vous pouvez obtenir à peut près n'importe quelle teinte à partir de la teinte qui pose problème. Ci dessous un exemple de variations possibles. Les teintes sont volontairement exagérées, et illustre également le genre de conséquences quelque peu indésirables que l'on peut obtenir (voir le pot et le carrelage). J'insiste sur le fait que ces images ont été réalisées sans autre intervention que la fontion de désaturation !

Image d'origine
(Image d'origine)
Paramètres par défaut
(Avec les paramètres par défaut)

Variations psychopathes :
Bleue Jaune
Je sais pas Orange
Verte Marron Noire Blanche ??

Quelques notions pour l'utilisation des filtres matriciels

Pour les plus mathématiciens, il s'agit d'une convolution entre l'image et la matrice.

Je ne crois pas trop m'avancer en disant que tous les logiciels de traitement d'image qui dépassent le niveau "luminosité - contraste" utilisent ces filtres. Sauf que l'utilisateur ne voit qu'un panneau simple avec quelques curseurs de réglage explicites au lieu d'une matrice compliquée et pas claire du tout.

Le principe est le suivant :

Le filtre recalcule la valeur de chaque pixel en fonction de ses voisins. La matrice explique comment chaque voisin est pris en compte. Le pixel recalculé est au centre de la matrice, c'est pour cette raison que le nombre de ligne, ou de colonne doit être impaire (ou alors c'est moins facile à comprendre).

Prenons un cas simple : une matrice d'une ligne et trois colonnes :

1 1 1

La valeur du pixel (au centre) recalculé est égale à :

pixel de droite + le pixel du centre lui même + pixel de gauche

Résultat, on fait un flou horizontal en étalant les couleurs. Telle quelle, cette matrice multiplie la luminosité totale par 3, puisque globalement on ajoute 3 fois l'image avec elle même.

Clown
Clown

Pour éviter ça, on normalise, de manière à ce que la somme totale des valeurs fasse 1 (le programme fait ça tout seul) :

0.33 0.33 0.33
La valeur du pixel recalculé est égale à :

0.33 * pixel de droite +0.33 * pixel du centre lui même + 0.33 * pixel de gauche

Clown
Clown

Si on veut que le flou soit moins important, il faut baisser les valeurs de gauche et de droite, et augmenter la valeur centrale. Comme ça, le pixel recalculé est moins modifié :

0.1 0.8 0.1

La valeur du pixel recalculé est égale à :

1/10 * pixel de droite + 8/10 * pixel du centre lui même + 1/10 * pixel de gauche

Clown
Clown

Ensuite, tout est un affaire de formules de math, mais on peut faire des essais pour voir.

Le filtre suivant calcule une dérivée seconde horizontale, donc "réagit" fortement sur les variations de valeurs horizontales. Il est utilisé pour renforcer les bords verticaux :

-0.5 2 -0.5

Clown
Clown

L'intensité maximum du filtre est obtenue en baissant la valeur centrale pour obtenir une somme presque nulle avant normalisation (et dans le cas limite on ne peut plus normaliser), par exemple :

-0.50 1.01 -0.50

Clown
Clown

Il est difficile d'arriver à un résultat complexe avec un seul filtre. C'est pour cette raison que AnaBuilder donne la possibilité d'enchaîner plusieurs filtres.

Par exemple, si on a une image très bruitée, il est possible d'éliminer une bonne partie du bruit en enchaînant 2 filtres : un filtre de lissage, et un filtre de renforcement. Le filtre de lissage étale les couleurs de manière à ce que les variations dues au bruit se compensent entre un pixel et ses voisins. Mais, cette opération donne un flou. Le 2ème filtre renforce les bords pour éliminer ce flou :

Lissage 3x3 :
+0.1 +0.1 +0.1
+0.1 +1.0 +0.1
+0.1 +0.1 +0.1

Renforcement 3x3 :
-0.1 -0.1 -0.1
-0.1 +2.0 -0.1
-0.1 -0.1 -0.1

Pour aller plus loin, il faudrait des pages...

Voici encore deux exemples. Le premier est obtenu avec 2 filtres, et le second est obtenu avec un seul filtre :

Clown
Clown

Sauvegarde

Sauvegarder l'image. AnaBuilder recalcule l'image dans sa dimension d'origine, et coupe les défauts des bords dus aux rotations et dilatations. Cela peut prendre un peu de temps.

Voici le résultat que j'ai obtenu à partir des 2 images données en exemple :
Résultat

Next