Histogramme

En Imagerie numérique un histogramme est un histogramme représentant la distribution des intensités de l'image. C'est un outil essentiel en traitement d'images, avec de très nombreuses applications.



Catégories :

Photographie numérique - Traitement d'image

Page(s) en rapport avec ce sujet :

  • Contrôle des images par l'utilisation des histogrammes dans Photoshop.... L'histogramme donne aussi une image rapide de la gamme de couleurs tonale de ... (source : irht.cnrs)
  • Une simple image couleur peut aussi être reconnue comme multispectrale... 4 : ETUDE D'UN HISTOGRAMME UNIDIMENSIONNEL. L'analyse des histogrammes... (source : webdav-noauth.unit-c)
  • Tous les histogrammes calculent le nombre total de pixels composant l'image (dans le cas de l'istogramme illustré ci-haut, on peut voir que l'histogramme... (source : benoitaudet)
Une image de tournesol
Et les histogrammes des 3 composantes

En Imagerie numérique un histogramme est un histogramme représentant la distribution des intensités (ou des couleurs) de l'image. C'est un outil essentiel en traitement d'images, avec de très nombreuses applications. Les histogrammes sont aussi particulièrement utilisés en photographie et pour la retouche d'images.


Définition

Pour une image monochrome, autrement dit à une seule composante, l'histogramme est défini comme une fonction discrète qui associe à chaque valeur d'intensité le nombre de pixels prenant cette valeur. On effectue quelquefois une quantification, qui regroupe plusieurs valeurs d'intensité en une seule classe, ce qui peut permettre de mieux visualiser la distribution des intensités de l'image.

Les histogrammes sont généralement normalisés, en divisant les valeurs de chaque classe par le nombre total de pixels de l'image. La valeur d'une classe fluctue alors entre 0 et 1, et peut s'interpréter comme la probabilité d'occurrence de la classe dans l'image. L'histogramme peut alors être vu comme une densité de probabilité[1]. Pour une image {x} en niveaux de gris codée sur L niveaux, on définit nk le nombre d'occurences du niveau xk. La probabilité d'occurrence d'un pixel de niveau xk dans l'image est :

\ p_x(x_k) = p(x=x_k) = \frac{n_k}{n},\quad 0 \le i < L

avec n le nombre total de pixels de l'image, et px définit alors l'histogramme normalisé sur [0, 1].

On définit aussi l'histogramme cumulé, somme partielle des probabilité d'occurence :

P(x_k)=\sum_{j=0}ˆk p_x(x_j)

Il peut s'interpréter comme la fonction de répartition associée à la variable aléatoire {x}.

Pour les images couleurs, on considère généralement les histogrammes des 3 composantes indépendamment, mais cela n'est généralement pas efficace[2]. On construit plutôt un histogramme directement dans l'espace couleur. Les classes de l'histogramme correspondent désormais à une couleur (ou un ensemble de couleurs, selon la quantification), plutôt qu'à une intensité. On parle tandis quelquefois d'histogramme de couleur.

Un histogramme peut être construit dans n'importe quel espace de couleurs, (RVB, HSV), ou sous-ensemble de cet espace, mais aussi pour les images multispectrales ou hyperspectrales.

Il est aussi envisageable de ne calculer l'histogramme que sur une partie de l'image, de forme arbitraire, ou au voisinage d'un point. On parle alors dans ce cas d'histogramme local. Ceci est utilisé par exemple dans les descripteurs SIFT pour la reconnaissance d'objets [3].

Exemple

Exemple de construction d'un histogramme d'une image couleur, dans l'espace RGB, sur les composantes rouge et bleue seulement : Chaque composante est quantifiée en quatre intervalles, ce qui donne un nombre de classes de 42 = 16. On peut alors représenter la table suivante par un histogramme 3D, où l'axe x représente la composante bleue, l'axe y représente la composante rouge et l'axe vertical est le nombre de pixels de chaque classe. Cet histogramme n'est pas normalisé.

rouge
Exemple histogramme.svg
0-63 64-127 128-191 192-255
bleu 0-63 43 78 18 0
64-127 45 67 33 2
128-191 127 58 25 8
192-255 140 47 47 13

Propriétés

Les histogrammes sont résistants à un certain nombre de transformations sur l'image. Ils sont invariants aux rotations ainsi qu'aux translations, mais aussi dans une moindre mesure aux changements de point de vue, ainsi qu'aux changements d'échelle[4]. Les histogrammes sont par contre sensibles aux changements d'illumination ainsi qu'aux conditions d'éclairage.

Pour un histogramme normalisé, la valeur de chaque classe s'interprète comme la probabilité d'occurrence de la classe dans l'image. Un histogramme normalisé somme à 1.

Une propriété intéressante est leur facilité de calcul, dans la mesure où il ne s'agit que de comptage de pixels, cequi se prête bien à une implémentation matérielle. Les histogrammes sont par conséquent fréquemment utilisés pour des applications temps-réel[1].

Traitements

Égalisation d'histogramme

Article détaillé : Égalisation d'histogramme.
La transformation T permet d'égaliser l'histogramme et de perfectionner le contraste.

L'égalisation d'histogramme est une méthode d'ajustement du contraste d'une image qui utilise l'histogramme. Elle consiste à appliquer une transformation sur chaque pixel de l'image, et par conséquent d'obtenir une nouvelle image à partir d'une opération indépendante sur chacun des pixels. Cette transformation est construite à partir de l'histogramme cumulé de l'image de départ.

L'égalisation d'histogramme sert à mieux répartir les intensités sur la totalité de la plage de valeurs envisageables (0 à 255 généralement pour des images 8 bits), en «étalant» l'histogramme. Théoriquement (cas continu) l'histogramme devrait même être plat (loi uniforme). Cependant à cause de la discrétisation, ceci est rarement le cas[5].

L'égalisation est intéressante pour les images dont la totalité, ou uniquement une partie, est de faible contraste (pixels d'intensité proches). La méthode est rapide, facile d'implémentation, et totalement automatique (i. e. pas de réglages) [5].

Spécification d'histogramme

Il n'est quelquefois pas pertinent de chercher à obtenir un histogramme uniforme par égalisation. La spécification d'histogramme est une méthode servant à générer une image ayant une forme d'histogramme déterminée[6].

Si on souhaite obtenir un histogramme de forme pz, à partir d'une image originale à L niveaux de gris, d'histogramme px, alors la transformation est obtenue de la manière suivante :

La transformation par égalisation de l'image originale est donnée par

s=T(x)=(L-1)\int_{0}ˆx p_x(w)\, \mathrm dw

La transformation par égalisation de l'image souhaitée est

s'=G(z)=(L-1)\int_{0}ˆz p_z(w)\, \mathrm dw

L'égalisation de l'image originale et l'image transformée doit aboutir au même histogramme égalisé, on a donc

s = s' d'où z = G − 1 (T (x) )

L'image transformée peut par conséquent être obtenue avec l'histogramme spécifié pz, à partir des transformations G (obtenue à partir de pz) et T (égalisation classique de l'image originale).

Mesures de similarité

Dans de nombreuses applications, il est utile de calculer une distance (ou d'une façon plus générale une mesure de similarité/dissimilarité) entre histogrammes. Par exemple pour étudier les variations temporelles du contenu visuel dans une vidéo, ou pour trouver des images identiques à une image requête. On définit pour cela un certain nombre de distances pour mesurer si deux histogrammes sont «proches» l'un de l'autre. Soit h1 et h2 deux histogrammes de même taille N (i. e. avec le même nombre de classes)

De nombreuses autres mesures sont envisageables, surtout : la divergence de Kullback-Leibler et la distance de Bhattacharyya, puisque la comparaison d'histogrammes se ramène à une mesure de dissimilarité entre deux distributions de probabilités.

Applications

L'histogramme est un outil de base du traitement d'images et est utilisé dans de très nombreuses applications et méthodes[1].

Rehaussement d'images

L'égalisation d'histogramme, qu'il soit global, ou appliqué de manière local, est un outil particulièrement utilisé pour le perfectionnement du contraste, et par conséquent le rehaussement. De même, la spécification d'histogramme est parfois utilisée le rehaussement.

Il est aussi envisageable d'utiliser les statistiques de l'histogramme (moyenne, variance) pour le perfectionnement de l'intensité et du contraste[7].

Segmentation en plans

Article détaillé : Segmentation en plans.
Variations de la distance entre histogrammes successifs sur une vidéo

Une segmentation en plans consiste à détecter les différents plans d'une vidéo. Pour cela, une méthode consiste à calculer un histogramme pour l'ensemble des images de la vidéo, et d'étudier ensuite les variations temporelles des distances entre histogrammes consécutif. Une distance faible étant synonyme de similarité visuelle, et une distance élevé reflétant un fort changement visuel. Les changements de plans sont alors détectés comme étant les pics de ces variations temporelles.

Les histogrammes sont la méthode privilégiée pour la segmentation, qui donne les résultats parmi les robustes, tout en étant de faible complexité[8].

Reconnaissance d'objets

L'idée a été proposée par Michæl Swain et Dana Ballard en 1991[9] et est essentiellement utilisée dans les situations où, la rapidité du traitement de l'image est un facteur déterminant du choix de l'algorithme ou est un objet spécifique, au lieu d'être une classe d'objets abstraite qui requiert d'être identifiée ; telle que notée par Swain et Ballard : «Cela peut ne pas être utile pour modéliser une tasse de café étant rouge ou blanche, mais peut être utile pour vous.»


Ceci apporte une vue d'ensemble énormément plus compacte des données dans une image que de savoir la valeur exacte de chaque pixel. L'histogramme de couleurs d'une image est invariable selon la translation ou de la rotation de l'axe de vue, et fluctue progressivement selon l'angle de vue. Ce qui fait que l'histogramme de couleurs est un outil spécifiquement intéressant pour la reconnaissance d'objets ayant une position et une rotation inconnue comparé à la scène.

L'inconvénient principal de cet histogramme est que la représentation obtenue dépend uniquement de la couleur de l'objet étudié, par ce fait il n'y a pas de moyen de distinguer la différence entre une tasse rouge et blanche d'une autre tasse blanche et rouge. En d'autres termes, l'algorithme de l'histogramme de couleurs n'a pas d'idée générale de la tasse, uniquement de son nombre de couleurs, alors on ne peut la comparer avec une tasse bleue et blanche, car les informations obtenues ne seront pas identiques.

Suivi d'objets

Photographie

Bibliographie

Notes et références

  1. Gonzalez, Woods (2008) , Intensity Transformations and Spatial Filtering p.  120
  2. Gonzalez, Woods (2008) , Color Image Processing p.  438
  3. Lowe, David G. (1999). "Object recognition from local scale-invariant features". Proceedings of the International Conference on Computer Vision 2 : 1150–1157.  
  4. MJ Swain, DH Ballard : Color Indexing, International Journal of Computer Vision, 1991, p.  13
  5. Gonzalez, Woods (2008) , Intensity Transformations and Spatial Filtering p.  127
  6. Gonzalez, Woods (2008) , Intensity Transformations and Spatial Filtering p.  128-138
  7. Gonzalez, Woods (2008) , Intensity Transformations and Spatial Filtering p.  140-144
  8. (en) John S. Boreczky and Lawrence A. Rowe, «Comparison of video shot boundary detection techniques», Storage and Retrieval for Image and Video Databases (SPIE), 1996.
  9. MJ Swain, DH Ballard : Color Indexing, International Journal of Computer Vision, 1991

Recherche sur Amazon (livres) :



Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/Histogramme_(imagerie_num%C3%A9rique).
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 07/04/2010.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu