Maison > développement back-end > Tutoriel Python > Comment effectuer l'égalisation d'histogramme sur des images à l'aide de Python

Comment effectuer l'égalisation d'histogramme sur des images à l'aide de Python

WBOY
Libérer: 2023-08-26 21:40:46
original
1366 Les gens l'ont consulté

Comment effectuer légalisation dhistogramme sur des images à laide de Python

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
Copier après la connexion

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)
Copier après la connexion

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])
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

7. Afficher les résultats
Utilisez la fonction plt.show() pour afficher toutes les images dessinées.

# 显示图像
plt.show()
Copier après la connexion

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()
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal