RSS 2.0  |  Plan du site  |  SPIP
Internet Explorer ne respectant pas les normes W3C, certains aspects graphiques de ce site ne sont pas supportés.
Je vous recommande donc l'utilisation du logiciel libre Firefox.
Les lentilles psychédéliques - Les filtres
Les filtres
PNG - 2 ko
les filtres

Les filtres disponibles dans ce logiciel peuvent être chacun affectés soit à loupe, soit à l’image entière.
Pour une meilleure compréhension de ces filtres, chaque explication sera muni de deux captures d’écrans (une montrant le filtre appliqué sur la loupe et une autre montrant le même filtre appliqué sur l’image).

De plus, pour effectuer les transformations radiométriques, le programme utilise une table de LUT. Une table de LUT a une taille égale au nombre de couleur de l’image et elle contient les valeurs après calcul pour chaque couleur. Ainsi, le calcul est effectué une bonne fois pour toute pour chaque couleur de l’image.
Le pseudo-code pour remplir une table de LUT pourrait être :

 pour i de 0 à <nombre de couleurs>
   LUT[i] = <formule de la transformation>

1. Les filtres de couleurs

Cette application est muni de filtres de couleurs. Il y en a évidemment trois : rouge, vert et bleu qui correspondent aux canaux de l’image.
Chacun de ces trois filtres ont une valeur que l’utilisateur peut modifier à sa guise.
Ensuite, quand l’utilisateur sélectionne un des filtres de couleurs, le logiciel augmente ou diminue chaques pixels du canal choisi (rouge, vert ou bleu) de la valeur réglé au préalable par l’utilisateur.
Ainsi, si l’utilisateur clique sur , l’application va augmenter le canal rouge de l’image (ou de la loupe) d’une valeur de 87.
La formule est donc : \sum_{i=0}^{255} i - valeur avec valeur = valeur choisie pour l’utilisateur

Quelques exemples :

pour le canal rouge, pour le canal vert et pour le canal bleu.
PNG - 48.2 ko
valeur : -180
PNG - 45.5 ko
valeur : -105
PNG - 46.9 ko
valeur : 81
PNG - 44.5 ko
valeur : 132
PNG - 44.8 ko
valeur : 81
PNG - 44.1 ko
valeur : -93

2. Le filtre inverse

L’opération d’inversion consiste, comme son nom l’indique, à inverser les valeurs des pixels par rapport à la moyenne des valeurs possibles. Le résultat obtenu est appelé négatif.
Le calcul est très simple, il faut soustraire la valeur 255 avec chaques pixels de l’image.
La formule est donc : \sum_{i=0}^{255} 255 - i

La courbe tonale de l’opération d’inversion est la suivante :

3. Le filtre seuillage

L’opération dite de "seuillage simple" consiste à mettre à zéro tous les pixels ayant un niveau de gris inférieur à une certaine valeur (appelée seuil) et à la valeur maximale les pixels ayant une valeur supérieure. Ainsi le résultat du seuillage est une image binaire contenant des pixels noirs et blancs, c’est la raison pour laquelle le terme de binarisation est parfois employé. Le seuillage permet de mettre en évidence des formes ou des objets dans une image. Toutefois la difficulté réside dans le choix du seuil à adopter.
La courbe tonale de l’opération de seuillage est la suivante :

Le pseudo-code permettant de remplir la table de LUT de ce filtre est :

 pour i de 0 à <seuil>
   LUT[i] = 0;
 pour i de <seuil> à 256
   LUT[i] = 255;

Voici les résultats d’une opération de seuillage avec les valeurs respectives de seuil de 44, 92 et 168 :

4. Le filtre stretching

Le stretching linéaire (aussi appelé "étirement d’histogramme", "linéarisation d’histogramme" ou "expansion de la dynamique") consiste à répartir les fréquences d’apparition des pixels sur la largeur de l’histogramme. Ainsi il s’agit d’une opération consistant à modifier l’histogramme de telle manière à répartir au mieux les intensités sur l’échelle des valeurs disponibles. Ceci revient à étendre l’histogramme afin que la valeur d’intensité la plus faible soit à zéro et que la plus haute soit à la valeur maximale.
De cette façon, si les valeurs de l’histogramme sont très proches les unes des autres, l’étirement va permettre de fournir une meilleure répartition afin de rendre les pixels clairs encore plus clairs et les pixels foncés proches du noir.
Il est ainsi possible d’augmenter le contraste d’une image. Par exemple une image trop foncée pourra devenir plus "visible". Toutefois cela ne donne pas toujours de bons résultats...
La courbe tonale correspondant à un étalement de l’histogramme est de la forme suivante :

4.1. Le stretching manuel

Pour le stretching manuel, c’est à l’utilisateur de régler les deux valeurs (a et b) qui permettrons de calculer le stretching linéaire de l’image.

Voici deux exemples de stretching linéaire :

PNG - 43.8 ko
a = 100 et b = 255
PNG - 50.2 ko
a = 0 et b = 172

4.2. Le stretching automatique

Il est aussi possible de calculer le stretching linéaire automatiquement à partir d’un pourcentage de saturation α donné (dans ce programme, le pourcentage de saturation est fixé à 1).
Pour cela, il faut déterminer les bornes a et b du stretching linéaire.
Le pseudo-code pour obtenir a est le suivant :

 saturation = 0;
   Pour i de 0 à 255
     Si (saturation < NS)
       break;
     saturation += H(i);
     FinSi
   FinPour
 a = i;

Et le pseudo-code pour obtenir b est quasiment le même :

 saturation = 0;
   Pour i de 255 à 0
     Si (saturation < NS)
       break;
     saturation += H(i);
     FinSi
   FinPour
 b = i;

avec NS le nombre de pixels image saturés.

Voici le résultat du stretching linéaire automatique avec α = 1 :