Maison  >  Article  >  développement back-end  >  Comment utiliser Python pour effectuer une compensation d'éclairage sur des images

Comment utiliser Python pour effectuer une compensation d'éclairage sur des images

WBOY
WBOYoriginal
2023-08-18 23:07:491509parcourir

Comment utiliser Python pour effectuer une compensation déclairage sur des images

Comment utiliser Python pour effectuer une compensation d'éclairage sur des images

Résumé :
Pour le traitement d'images numériques, un éclairage inégal est l'un des problèmes courants. Cet article explique comment utiliser la bibliothèque OpenCV dans le langage de programmation Python pour effectuer une compensation d'éclairage sur les images. Nous extrairons les informations d'éclairage de l'image, puis ajusterons la luminosité et le contraste de l'image en fonction de ces informations pour obtenir l'effet d'un éclairage uniforme.

  1. Importez les bibliothèques requises
    Tout d'abord, nous devons importer la bibliothèque OpenCV en Python et d'autres bibliothèques de base :
import cv2
import numpy as np
import matplotlib.pyplot as plt
  1. Charger et afficher l'image originale
    Charger l'image qui nécessite une compensation d'éclairage et utiliser la fonction imshow d'OpenCV. Montrez-la :
image = cv2.imread('image.jpg',1)
cv2.imshow('Original Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
  1. Extraire les informations d'éclairage
    Pour extraire les informations d'éclairage d'une image, nous pouvons utiliser des méthodes basées sur des statistiques. Parmi elles, une méthode courante consiste à obtenir l'intensité d'éclairage de l'image en calculant la valeur moyenne de l'image :
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
mean = np.mean(gray_image)
  1. Ajuster la luminosité et le contraste de l'image
    Selon les informations d'éclairage, nous pouvons obtenir un éclairage uniforme en réglage de la luminosité et du contraste de l'effet de transformation d'image. Plus précisément, nous utiliserons la fonction cv2.convertScaleAbs de la bibliothèque OpenCV pour ajuster la luminosité et le contraste de l'image :
alpha = 1.0 / mean
beta = 0
light_compensated_image = cv2.convertScaleAbs(image, alpha=alpha, beta=beta)
  1. Afficher et enregistrer l'image traitée
    Enfin, nous pouvons utiliser la fonction imshow d'OpenCV pour afficher l'image traitée, Et utilisez la fonction cv2.imwrite pour l'enregistrer sur le disque :
cv2.imshow('Light Compensated Image', light_compensated_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

cv2.imwrite('light_compensated_image.jpg', light_compensated_image)
  1. Résultats et discussion
    Grâce aux étapes ci-dessus, nous avons réussi à effectuer une compensation d'éclairage sur l'image originale et à éliminer le problème d'éclairage inégal. En ajustant la luminosité et le contraste de l'image, nous donnons à l'ensemble de l'image un effet d'éclairage plus uniforme. Enfin, nous pouvons vérifier nos résultats en affichant et en enregistrant l'image traitée.

Conclusion :
Cet article démontre le processus de compensation d'éclairage pour les images à l'aide de Python et de la bibliothèque OpenCV. Un éclairage inégal est un problème courant dans le traitement d'images numériques, mais en extrayant les informations d'éclairage et en ajustant la luminosité et le contraste de l'image, nous pouvons obtenir efficacement l'effet d'un éclairage uniforme. En tant que langage de programmation puissant, Python fournit divers outils et bibliothèques de traitement d'images, rendant la compensation de l'éclairage plus simple et plus efficace.

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!

Déclaration:
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