flag

Ce site utilise des cookies à fins de statistique, performance et sécurité, ainsi que pour les boutons fb_page, et n'exploite pas de données personnelles
filler

Algorithme d'analyse chromatique (*)

L'analyse comporte trois étapes : la préparation en vue du traitement, la détermination d'une palette représentative (ou "quantification chromatique") et son affichage.

Pré-traitement

Le résultat final dépend évidemment de la qualité des images de départ.
Beaucoup d’œuvres très anciennes présentent des parties manquantes ou dégradées. C'est souvent le cas des fresques antiques livrées par l'archéologie. Ces images doivent être recadrées pour ne conserver que les zones représentatives. Même les œuvres bien conservées doivent parfois être recadrées en raison de zones d'ombre sur les bords.
Ensuite, beaucoup de tableaux apparaissent jaunis en raison du vieillissement du vernis ou de mauvaises conditions de prise de vue. Il est alors utile de recourir à des programmes de retouche photo pour rafraîchir les couleurs. On ne peut évidemment pas garantir que le résultat soit parfaitement conforme à l’œuvre originale, mais l'amélioration est comparable aux restaurations effectuées par des ateliers spécialisés.
Les images de ce site résultent de ce traitement. Un clic sur l'image montre l'image de départ.
Enfin, les images sont rééchantillonnées à environ 10.000 pixels : un tableau d'un mètre carré est donc représenté par des pixels d'un centimètre de côté. Cette simplification raccourcit le temps de traitement et n'a que peu d'influence sur le résultat final.

Quantification chromatique

Le principe général consiste à établir une statististique des différentes couleurs de pixel.
L'affichage des couleurs en informatique utilise un codage 3-D : c'est le système RVB, qui pilote les écrans au moyen de 3 nombres compris entre 0 et 255, ce qui définit 16.777.216‬ couleurs. En pratique, une image compte généralement des milliers de couleurs différentes, dont la statistique brute ne serait guère utile.
Il faut donc procéder à des regroupements pour obtenir un échantillon dont on peut penser qu'il ressemble à la palette du peintre.
On peut établir cette statistique dans l'espace RVB, mais celui-ci ne rend pas bien compte de la perception humaine. Un meilleur espace chromatique est le système L*a*b* élaboré par la Commission internationale de l'éclairage.
L'algorithme consiste à convertir les pixels de RVB en L*a*b* et à les classer dans un cube de 1000 cellules obtenu en découpant en 10 segments les 3 axes L, a et b. Les 16.777.216 couleurs RVB possibles n'occupent que 415 cellules de ce cube. Appliquée à un tableau, cette méthode donne une palette généralement comprise entre 50 et 150 couleurs  ; seules des photos très bigarrées dépassent les 200.
Pour chaque cellule de ce cube, l'algorithme compte le nombre de pixels et calcule la moyenne des valeurs RVB de l'image analysée.

Affichage

Le nombre de couleurs identifiées dans l'image est visualisé par des pictogrammes :
picto 30 - 60 couleurs
picto 60 - 90 couleurs
picto 90 - 120 couleurs
picto 120 - 150 couleurs
picto 150 - 180 couleurs
picto > 180 couleurs
Cliquez ici pour voir des exemples.

L'étendue de la palette picturale est évaluée au moyen d'un concept d'écart-type chromatique défini comme suit : distance moyenne entre les pixels de l'image et sa couleur moyenne, dans l'espace chromatique L*a*b*. Cette étendue est visualisée par des pictogrammes :
picto 15 - 30
picto 30 - 45
picto 45 - 60
picto > 60
Cliquez ici pour voir des exemples.

Méthode 1 : cercle chromatique (au centre sur les pages du site)

Le cercle chromatique, bien connu des artistes, offre l'avantage de montrer les couleurs complémentaires mais présente la difficulté d'afficher en plan un espace 3-D.
Les couleurs quantifiées à l'étape précédente sont converties en espace TSV (teinte-saturation-valeur) :
◦ teinte : angle compris entre 0° et 360° sur le cercle chromatique
◦ saturation : degré de pureté par rapport à la couleur vive correspondante (0 = gris ; 100 = couleur vive)
◦ valeur : intensité lumineuse (0 = obscur ; 100 = brillant)
L'algorithme utilise la teinte comme coordonnée angulaire et l'intensité comme cordonnée radiale.
La saturation est donnée implicitement par la couleur du disque dont le diamètre est fonction du nombre de pixels de l'image.
Les couleurs avec le plus de pixels se trouvent en arrière-plan. Elles peuvent être partiellement (voire totalement) masquées par une multitude de couleurs moins fréquentes présentant une teinte et une valeur proches. C'est pourquoi l'algorithme limite à 128 le nombre de couleurs affichées.
La seconde méthode ne présente pas cet inconvénient.

Un indice de complémentarité chromatique est calculé par addition de la contribution de chaque paire de pixels de l'image.

algorithme

Lorsque l'angle entre deux pixels sur le cercle chromatique est inférieur à 90°, leur contribution à l'indice est nulle : leurs couleurs ne sont pas du tout complémentaires.
Lorsque deux pixels se trouvent se trouvent sur un même diamètre de part et d'autre du centre, leur contribution est donnée par le produit de leurs valeurs (= intensité lumineuse) et de leurs saturations (de façon à éliminer l'influence des blancs et des gris, qui ne contribuent pas au chromatisme de l'image).
Lorsque l'angle est compris entre 90° et 180°, la contribution est multipliée par le cosinus de l'angle.
Pour la figure, la contribution d'une paire de pixels rouge/vert vaut : 1 × 1 × 0,65 × 0,91 × 0,875 = 0,52
L'indice de complémentarité chromatique est donné par la contribution de l'ensemble des pixels, divisée par la valeur moyenne de l'image.
L'indice maximal (100 %) est donc obtenu pour une image de deux couleurs de même importance (50 % - 50 %) avec une valeur et une saturation maximales, et diamétralement opposées sur le cercle chromatique, p. ex. :

rouge_cyan

L'indice de complémentarité est visualisé par des pictogrammes :
picto 2,5 - 5 %
picto 5 - 7,5 %
picto 7,5 - 10 %
picto 10 - 12,5 %
picto 12,5 - 15 %
picto > 15 %
Cliquez ici pour voir des exemples.

Méthode 2 (à droite sur les pages du site)

Les couleurs sont affichées en bandes horizontales en fonction de leur proximité dans l'espace L*a*b*, en commençant par celle comportant le plus de pixels. Deux cellules sont "proches" si elles ont des faces, des arêtes ou des sommets adjacents  ; chaque bande comporte donc au plus 27 couleurs.
Cette méthode présente l'avantage de bien afficher toutes les couleurs de la palette.


(*) La mise au point de l'algorithme a bénéficié des conseils de Vinciane Lacroix.