HISTOGRAMME
D'UNE PHOTO NUMERIQUE

Mise en situation

Il est possible de créer une image en couleurs, en noir et blanc ou en niveaux de gris, avec un tableau multidimensionnel. L'image peut alors être affichée à l'aide d'une bibliothèque comme Matplotlib. Elle peut être améliorée, modifiée en changeant légèrement les valeurs du tableau.

Le but est de travailler sur un exemple simple. Pour cette raison, l'image étudiée sera en niveaux de gris et de petites dimensions.

Hypothèses et données

Exemple d'histogramme

Soit l’image de 5 pixels par 5 pixels de côté dont les valeurs, codées sur 2 bits, sont comprises entre 0 et 3.

A chaque valeur de niveau de gris compris entre 0 et 3, on compte le nombre de pixels avec cette valeur :

Valeur de niveau de gris 0 1 2 3
Nombre de pixels7963

L’histogramme de l'image représente la distribution des niveaux de gris de l’image :

Exemple d'image

Le programme en Python ci-dessous crée une image en niveaux de gris dont les valeurs, codées sur 4 bits, sont comprises entre 0 et 15.

M=[[13,13,12,12,12,11,11,11],
   [13,12,12,12,11,11,11,11],
   [12,12, 8, 7, 6, 5,10,10],
   [12,12, 7, 6, 5, 4,10,10],
   [12,11, 6, 5, 4, 3,10, 9],
   [11,11, 5, 4, 3, 2, 9, 9],
   [11,11,10,10,10, 9, 9, 9],
   [11,10,10,10, 9, 9, 9, 8]]
   
import matplotlib.pyplot as plt
plt.imshow(M,cmap='gray',vmin=0,vmax=15)
plt.show()

Résultat obtenu :

Travail demandé

  1. Pour l'image donnée en exemple, réaliser son histogramme.
  2. Calculer la probabilité pour qu’un pixel de l’image ait un niveau de gris supérieur à 10.
  3. Si on ajoute 5 à chaque valeur de niveau de gris :
  4. Si on enlève 5 à chaque valeur de niveau de gris :
  5. On applique la fonction y = a.x + b à chaque valeur x des pixels de l'image.