582 views
--- title: INFO911 (3c) Contraste, Histogramme, Egalisation type: slide slideOptions: transition: slide progress: true slideNumber: true --- # Contraste, Histogramme, Egalisation ## (Traitement et Analyse d'Image 3c) > [name=Jacques-Olivier Lachaud][time=Novembre 2020][color=#907bf7] > (Les images peuvent être soumises à des droits d'auteur. Elles sont utilisées ici exclusivement dans un but pédagogique) ###### tags: `info911` Retour à [INFO911 (Main) Traitement et analyse d'image](https://codimd.math.cnrs.fr/s/UE_B59gMy) --- # Contraste des images Quantifie la différence de luminosité entre les parties claires et sombres d'une image $I$ ==contraste== $C=\frac{I_{max}-I_{min}}{I_{max}+I_{min}}$ $C$ varie donc entre 0: pas de contraste et 1: contraste maximum Noir/Blanc Pas très utile globalement, seulement localement, car pas représentative de la proportion de toutes les intensités intermédiaires. --- # Histogramme d'images Noir et Blanc Espace discret de valeurs, $V=\{0,1,2,\ldots, 255\}$, un domaine $R$ L'==histogramme $h_I$== mesure la proportion de pixels de $I$ qui ont une même valeur: $\forall v \in V, h_I[v] = \# \{ p \in R, I[p] = v \}~/~\#\{R\}$ $\forall v \in V, H_I[v] = \sum_{ i=0, i \le v} h_I[i]$ $h_I[v]$=probabilité qu'un pixel de $I$ ait la valeur $v$ $H_I[v]$=probabilité qu'un pixel de $I$ ait une valeur $\le v$ | ![kowllon-gray](https://codimd.math.cnrs.fr/uploads/upload_8c1d4a85299c877adb9f3a7dca5519bf.jpg =x130) | ![hist-kowloon](https://codimd.math.cnrs.fr/uploads/upload_8148ac8e2ea913ea96421cf55cfaf748.png =x130) | ![histc-kowloon](https://codimd.math.cnrs.fr/uploads/upload_34d7a9adf144ea9efec936df58509a49.png =x130) | | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |:-------------------------------------------------------------------------------------------------------:| | Image | Histogramme $h_I$ | Histogramme cummulé $H_I$ | --- # Exposition et histogrammes ![Exposition-photos](https://codimd.math.cnrs.fr/uploads/upload_79318b7cb69d8ce521a5bea7341339d6.png =x290) --- # Histogrammes mal/bien équilibrés | ![image-orig](https://codimd.math.cnrs.fr/uploads/upload_d5cca24d67f188d13b34012b645b0b19.png =x120) | ![hist-orig](https://codimd.math.cnrs.fr/uploads/upload_ccd67b44fed7348609985af1dbdcd45c.png =x120) | ![hist-ideal](https://codimd.math.cnrs.fr/uploads/upload_4597cd26ebd72646058f540410019e72.png =x120) | | ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | --- | | Image faible dynamique | Histogramme | Histogramme équilibré | ==Idée== : étaler l'histogramme pour mieux répartir la dynamique --- ### Egalisation d'histogramme | ![hist-orig](https://codimd.math.cnrs.fr/uploads/upload_ccd67b44fed7348609985af1dbdcd45c.png =x120) | ![hist-egal](https://codimd.math.cnrs.fr/uploads/upload_0e96290bfeb40f9a4a9f4644828cbf7b.png =x120) | ![image-egal](https://codimd.math.cnrs.fr/uploads/upload_86178b38909453155a035e5c0457875a.png =x120) | | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | input $h_I$, $H_I$ | $h_J$, $H_J$ égalisé | output image $J$ | On cherche $f: V \rightarrow V$ tel que $J = f \circ I$, pixels $p \in R$ $$ \frac{v}{255} = H_{f \circ I}[v] = \frac{\#\{p \in R, f \circ I[p] \le v \}}{\#\{p \in R\}} = \frac{\#\{p \in R, I[p] \le f^{-1}[v] \}}{\#\{p\in R\}} = H_{I}[ f^{-1}[v]] $$ Soit $w=f^{-1}[v]$, on a $v=f[w]$, il vient $\frac{f[w]}{255}=H_I[w]$, i.e. $f[w] = 255 \cdot H_I[w]$ On applique $f$ sur tous les pixels de $I$ pour obtenir $J$ --- # Exercices ## Exercice 1: égalisation d'image binaire Peut-on obtenir des résultats intéressants en égalisant des images binaires (i.e. intensité 0 ou 255) ? ## Exercice 2: Spécialisation d'histogramme A partir de deux images $I$ et $K$, on veut fabriquer une image $I' = h \circ I$ qui a la même dynamique que l'image $K$. Proposez une méthode en se basant sur le principe de l'égalisation d'histogramme. --- # Histogramme d'images quantifiés / locaux ### Histogrammes quantifiés On peut aussi se donner un ensemble de "bins" qui partitionne $V$ Par exemple, quantification en 16 bins $B_i = \{16*i, \ldots, 16*i+15 \}$ $\forall i, 0 \le i < 16, h_I[i] = \# \{ p \in R, I[p] \in B_i \} / \#\{R\}$ $\forall i, 0 \le i < 16, H_I[i] = \sum_{j=0}^{i} h_I[j]$ ### Histogrammes locaux On peut calculer un histogramme sur une simple zone => extrait des informations statistiques locales => égalisation/spécialisation locale pour améliorer le contraste d'une région => comparaisons d'histogrammes pour évaluer les ressemblances --- # Histogramme d'images couleurs 1. soit extraction d'un canal (souvent V de HSV) => ==égalisation== de ce canal ou ==rehaussement de contraste== | ![kowloon](https://codimd.math.cnrs.fr/uploads/upload_46037c4ef68b0f4a687c55079cd8542e.png =x140) | ![](https://codimd.math.cnrs.fr/uploads/upload_be78a716b0e8b578b215518a721db4f2.png =x140) | | ---- | -------- | | Input image | Image égalisée sur canal V | `video-equalization` --- # Histogramme d'images couleurs 2. soit quantification de RGB/HSV en bins => ==comparaisons== ou ==transport== de couleur distances/similarité entre distributions :::warning Distance entre 2 couleurs $\neq$ distance entre 2 distributions de couleurs. ::: `video-color-distribution` --- # Comparaisons d'histogrammes On définit plusieurs distances entre histogrammes, ce qui permet de comparer la ressemblance ou la dissemblance entre des images ou des régions. ![hist-correlation](https://codimd.math.cnrs.fr/uploads/upload_fa9e39432d6a236ba8419e916d060c96.png =x70) ![hist-chi2](https://codimd.math.cnrs.fr/uploads/upload_a93bbf01c63215dd6e145a5bed3ce638.png =x60) En fait $h_I$ est une probabilité (discrète) et $H_I$ est sa fonction de répartition, donc les outils classiques de probabilités/statistiques sont utilisables. Par exemple l'espérance de $h_I$ est bien la moyenne de $I$ --- # Notes: espérance de h_I = moyenne de I Si $R$ est le domaine de l'image, $v$ désigne des valeurs, $p$ des pixels $$ \begin{align} E[h_I] &= \sum_{v=0}^{255} v \cdot P(h_I=v) \\ &= \sum_{v=0}^{255} v \cdot \frac{\#\{p, I(p)=v\}}{\#\{R\}} \\ &= \frac{1}{\#\{R\}} \sum_{v=0}^{255} v \cdot \#\{p, I(p)=v\} \\ &=\frac{1}{\#\{R\}} \sum_{p \in R} I(p) \end{align} $$