Maison > Article > développement back-end > Comment utiliser Python pour effectuer l'égalisation de l'histogramme des couleurs sur les images
Comment utiliser Python pour effectuer l'égalisation de l'histogramme des couleurs sur des images
Introduction :
L'égalisation de l'histogramme des couleurs est une méthode courante de traitement d'image qui rend l'image plus claire et plus vive en améliorant le contraste de l'image. En Python, en utilisant certaines bibliothèques de traitement d'image courantes, nous pouvons facilement implémenter des opérations d'égalisation d'histogramme de couleurs. Cet article expliquera comment utiliser Python pour égaliser l'histogramme des couleurs des images et fournira des exemples de code correspondants.
1. Installez les bibliothèques requises
Avant d'effectuer l'égalisation de l'histogramme des couleurs, nous devons installer la bibliothèque de traitement d'image de Python PIL (Python Imaging Library) ou sa bibliothèque de branche Pillow. Vous pouvez l'installer via la commande suivante :
$ pip install Pillow.
2. Importez les bibliothèques requises
Après avoir terminé l'installation, nous devons importer les bibliothèques requises.
from PIL import Image import numpy as np import matplotlib.pyplot as plt
3. Lire l'image
Tout d'abord, nous devons charger une image à traiter. Les images peuvent être lues à l'aide du module Image de la bibliothèque PIL. Voici un exemple de code pour lire des images :
image_path = 'path/to/your/image.jpg' image = Image.open(image_path)
4. Convertir en image en niveaux de gris
L'égalisation de l'histogramme des couleurs sert principalement à ajuster la luminosité de l'image, l'image couleur doit donc être convertie en image en niveaux de gris. Ceci peut être réalisé grâce au code suivant :
gray_image = image.convert('L')
5. Calculer l'histogramme
Avant d'effectuer l'égalisation de l'histogramme des couleurs, nous devons d'abord calculer l'histogramme de l'image. L'histogramme d'une image peut être calculé à l'aide de la fonction histogramme de la bibliothèque numpy. Voici un exemple de code pour calculer un histogramme :
hist, bins = np.histogram(gray_image.flatten(), 256, [0,256])
Ce code renverra un tableau hist contenant les statistiques d'histogramme de l'image et les compartiments de plage numérique correspondant aux statistiques d'histogramme.
6. Calculer l'histogramme cumulé
Selon l'histogramme, nous pouvons calculer l'histogramme cumulé, qui est utilisé pour égaliser la luminosité de l'image. En accumulant les valeurs du tableau d'histogrammes, nous pouvons obtenir la densité de probabilité cumulée de chaque niveau de gris. Voici un exemple de code pour calculer l'histogramme cumulé :
cdf = hist.cumsum() cdf_normalized = cdf * hist.max() / cdf.max()
7. Calculez la table de cartographie
Ensuite, nous devons cartographier l'histogramme cumulé pour obtenir une fonction de transformation linéaire pour égaliser la luminosité de l'image. Voici un exemple de code pour calculer la table de mappage :
mapping = np.interp(gray_image.flatten(), bins[:-1], cdf_normalized) equalized_image = mapping.reshape(gray_image.shape)
8. Afficher les résultats du traitement
Enfin, nous pouvons utiliser la bibliothèque Matplotlib pour afficher l'image traitée. Voici un exemple de code qui affiche une image :
plt.subplot(1, 2, 1) plt.imshow(gray_image, cmap='gray') plt.title('Original Image') plt.axis('off') plt.subplot(1, 2, 2) plt.imshow(equalized_image, cmap='gray') plt.title('Equalized Image') plt.axis('off') plt.tight_layout() plt.show()
En exécutant le code ci-dessus, vous pouvez afficher l'image originale et l'image égalisée pour comparer les effets.
Conclusion :
L'égalisation de l'histogramme des couleurs est une méthode courante de traitement d'image qui peut améliorer le contraste et la clarté des images. Cet article explique comment utiliser Python pour égaliser l'histogramme des couleurs des images et fournit des exemples de code correspondants. J'espère que cela pourra aider les lecteurs. Les lecteurs peuvent ajuster et améliorer davantage le code en fonction de leurs propres besoins pour obtenir davantage de fonctions de traitement d'image.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!