USTHB- Faculté d’Informatique
Module : Imagerie médicale et parallélisme
M2 HPC
Série TP N° 2
(Manipulations d'Histogramme)
[Link]
Objectifs :
Ce TP a pour but d’apprendre et appliquer des techniques de manipulation d'histogrammes
D’images en niveaux de gris, incluant la translation, l'inversion, l'expansion de dynamique et
L’égalisation d’histogramme, pour comprendre leurs effets sur l'image et améliorer la qualité
visuelle. En suivant les exercices de ce TP, vous apprendrez à faire :
1. Translation de l’histogramme
2. Inversion de l’histogramme
3. Expansion de dynamique
4. Egalisation d’histogramme.
Chaque partie est composée d'exercices à résoudre. Suivez les instructions et répondez aux
questions pour chaque exercice.
1. Translation de l’Histogramme
Ouvrir un nouveau script python sur vscode
Enregistrer le fichier sous le nom : img_med_TP2.py
Télécharger les images jointes à ce fichier (low_cont_xray.jpg) et placez-la dans le même
répertoire que votre script.
Utiliser les fonctions codées dans le script du TP1 : img_med_TP1.py
Instructions :
1. Importez les bibliothèques nécessaires : Chargez l'image en spécifiant le mode de
chargement en niveaux de gris (cv2.IMREAD_GRAYSCALE).
2. Appliquer une translation des niveaux de gris en ajoutant une valeur constante (positive ou
négative) à chaque pixel.
Questions :
Que se passe-t-il lorsque la valeur ajoutée est positive ? Négative ?
Quelles valeurs limite peut-on rencontrer lors de la translation ?
Afficher les images ainsi que leurs histogrammes avant/après
2. Inversion de l’Histogramme
Implémentez l’algorithme vu en cours pour Inverser l'image en remplaçant chaque
intensité de pixel 𝐼 par 255−𝐼
Instructions :
- Appliquer l'inversion en soustrayant chaque valeur de pixel de 255
-Afficher l’inversion à l’image précédente puis afficher les images ainsi que les
Histogrammes avant et après inversion
Questions :
Que remarquez-vous ?
Que représente l'inversion de l'image ? Dans quels cas pourrait-elle être utile ?
3. Expansion de Dynamique
Implémentez la formule vue en cours pour Étendre la plage des valeurs d'intensité et
améliorer le contraste de l'image.
Instructions :
-Identifier le minimum et le maximum des valeurs de pixels dans l'image.
-Appliquer une transformation linéaire pour étendre la plage des niveaux de gris entre
0 et 255.
-Afficher les images et leurs histogrammes respectifs avant et après expansion
Questions :
Que se passe-t-il visuellement après l'expansion de dynamique ?
Dans quels types d'images l'expansion de dynamique est-elle particulièrement
utile ?
4. Égalisation d’Histogramme
Redistribuer les niveaux d'intensité pour obtenir un histogramme uniformément
réparti, améliorant ainsi le contraste.
Instructions :
Soit 𝐼 l'intensité d'un pixel de l'image d'origine, et 𝐼 l'intensité du pixel après
égalisation. La transformation est définie par :
où :
CDF(𝐼) est la fonction de distribution cumulative à l'intensité 𝐼
CDFmin est la première valeur non nulle de la CDF
𝑀×𝑁 est le nombre total de pixels dans l'image
𝐿 est le nombre de niveaux de gris (généralement 256 pour une image 8 bits)
round permet d'obtenir un nombre entier.
1. Calcul de l'Histogramme : Compter le nombre de pixels pour chaque niveau
de gris.
2. Calcul de la CDF : La CDF est obtenue en cumulant les valeurs de
l'histogramme.
3. Transformation : Utiliser la formule ci-dessus pour mapper chaque intensité
d'origine à une nouvelle intensité.
4. Appliquez cette fonction sur les histogrammes précédents
Questions :
Quelle différence de contraste notez-vous par rapport à l'image originale ?
Dans quels cas l’égalisation d’histogramme peut-elle dégrader la qualité de
l'image ?