Comment utiliser Python pour effectuer l'égalisation d'histogramme sur des images
Introduction :
L'égalisation d'histogramme est une méthode courante d'amélioration d'image qui ajuste les valeurs de pixels de l'image pour rendre la distribution des niveaux de gris de l'image plus uniforme. le contraste de l'image. Dans cet article, nous apprendrons comment implémenter l'égalisation d'histogramme d'images à l'aide de la bibliothèque OpenCV en Python.
1. Importez les bibliothèques nécessaires
Tout d'abord, nous devons importer certaines bibliothèques nécessaires en Python : numpy est utilisé pour traiter les tableaux, matplotlib est utilisé pour afficher les images et cv2 est utilisé pour le traitement des images.
import numpy as np import cv2 from matplotlib import pyplot as plt
2. Charger l'image
Nous utilisons la fonction cv2.imread() pour charger une image. Cette fonction accepte le chemin d'accès au fichier image comme paramètre et renvoie un tableau représentant l'image.
# 加载图像 img = cv2.imread('image.jpg', 0)
3. Calculer l'histogramme
Nous utilisons la fonction cv2.calcHist() pour calculer l'histogramme de l'image. Cette fonction accepte un tableau d'images, un index de canal, un masque, une taille d'histogramme et une plage d'histogramme comme arguments et renvoie un tableau représentant l'histogramme de l'image.
# 计算直方图 hist = cv2.calcHist([img],[0],None,[256],[0,256])
4. Dessinez l'image et l'histogramme d'origine
Utilisez la fonction plt.subplot() dans la bibliothèque matplotlib pour dessiner respectivement l'image et l'histogramme d'origine.
# 绘制原始图像和直方图 plt.subplot(121), plt.imshow(img, 'gray') plt.subplot(122), plt.plot(hist)
5. Effectuez l'égalisation de l'histogramme
Utilisez la fonction cv2.equalizeHist() pour effectuer l'égalisation de l'histogramme sur l'image. Cette fonction accepte un tableau d'images comme paramètre et renvoie un tableau d'images après égalisation de l'histogramme.
# 进行直方图均衡化 equ = cv2.equalizeHist(img)
6. Dessinez l'image égalisée et l'histogramme
Utilisez également la fonction plt.subplot() pour dessiner respectivement l'image égalisée et l'histogramme.
# 绘制均衡化后的图像和直方图 plt.subplot(121), plt.imshow(equ, 'gray') plt.subplot(122), plt.plot(hist)
7. Afficher les résultats
Utilisez la fonction plt.show() pour afficher toutes les images dessinées.
# 显示图像 plt.show()
8. Exemple de code complet
import numpy as np import cv2 from matplotlib import pyplot as plt # 加载图像 img = cv2.imread('image.jpg', 0) # 计算直方图 hist = cv2.calcHist([img],[0],None,[256],[0,256]) # 绘制原始图像和直方图 plt.subplot(121), plt.imshow(img, 'gray') plt.subplot(122), plt.plot(hist) # 进行直方图均衡化 equ = cv2.equalizeHist(img) # 绘制均衡化后的图像和直方图 plt.subplot(121), plt.imshow(equ, 'gray') plt.subplot(122), plt.plot(hist) # 显示图像 plt.show()
Conclusion :
En utilisant la bibliothèque OpenCV en Python, nous pouvons facilement effectuer une égalisation d'histogramme sur des images. L'égalisation de l'histogramme est une méthode simple et efficace qui peut améliorer le contraste d'une image et la rendre plus claire et plus vive. J'espère que cet article pourra aider les lecteurs intéressés par le traitement d'images.
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!