


Comment ajuster la luminosité et le contraste d'une image à l'aide de Python
Comment utiliser Python pour régler la luminosité et le contraste des images
Introduction :
Dans le traitement d'image, le réglage de la luminosité et du contraste est l'une des opérations courantes et importantes. Python fournit une multitude de bibliothèques de traitement d'images, telles que PIL, OpenCV, etc., qui peuvent facilement implémenter ces deux opérations. Cet article expliquera comment utiliser le code Python pour ajuster la luminosité et le contraste des images et donnera des exemples de code correspondants.
Première partie : Ajuster la luminosité de l'image
Le réglage de la luminosité de l'image peut être obtenu en modifiant la valeur RVB de chaque pixel. La méthode spécifique consiste à ajouter un incrément fixe à la valeur RVB de chaque pixel. Vous trouverez ci-dessous un exemple de code qui utilise la bibliothèque PIL pour ajuster la luminosité d'une image :
from PIL import ImageEnhance # 打开图像 image = Image.open('image.jpg') # 创建Enhancer对象 enhancer = ImageEnhance.Brightness(image) # 调整亮度为原来的2倍 bright_image = enhancer.enhance(2) # 显示图像 bright_image.show() # 保存图像 bright_image.save('bright_image.jpg')
Dans le code ci-dessus, une image est d'abord ouverte via la fonction Image.open(), puis un objet Enhancer est créé à l'aide de ImageEnhance. Fonction .Luminosité(). Utilisez ensuite la méthode Enhancer() de l'objet Enhancer pour ajuster la luminosité de l'image. Le paramètre représente le multiple de la luminosité. Enfin, appelez la méthode show() pour afficher l'image ajustée, ou vous pouvez utiliser la méthode save() pour enregistrer l'image.
Partie 2 : Ajustement du contraste de l'image
Le réglage du contraste de l'image est obtenu en modifiant la luminosité relative de chaque pixel. La méthode spécifique consiste à multiplier la valeur RVB de chaque pixel par un incrément fixe. Voici un exemple de code qui utilise la bibliothèque OpenCV pour ajuster le contraste d'une image :
import cv2 # 读取图像 image = cv2.imread('image.jpg') # 提取亮度通道 hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) v_channel = hsv_image[:,:,2] # 调整亮度为原来的2倍 contrast_image = cv2.addWeighted(v_channel, 2, np.zeros(v_channel.shape, v_channel.dtype), 0, 0) # 将亮度通道替换回原图像 hsv_image[:,:,2] = contrast_image contrast_image = cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR) # 显示图像 cv2.imshow('contrast_image', contrast_image) cv2.waitKey(0) # 保存图像 cv2.imwrite('contrast_image.jpg', contrast_image)
Dans le code ci-dessus, une image est d'abord lue à l'aide de la fonction cv2.imread(), puis l'image est convertie à partir de la couleur BGR. espace à l'aide de la fonction cv2.cvtColor() Convertissez en espace colorimétrique HSV car l'espace colorimétrique HSV est plus sensible aux changements de luminosité. Ensuite, en extrayant le canal de luminosité hsv_image[:,:,2], un tableau bidimensionnel v_channel représentant la luminosité est obtenu.
Utilisez ensuite la fonction cv2.addWeighted() pour combiner linéairement les canaux de luminosité afin d'ajuster le contraste, où le premier paramètre représente l'image d'entrée et le deuxième paramètre représente le multiple de luminosité, ici défini sur 2. Enfin, le canal de luminosité ajusté est remplacé par l'image d'origine et l'image est reconvertie de l'espace colorimétrique HSV vers l'espace colorimétrique BGR via la fonction cv2.cvtColor().
Enfin, l'image ajustée est affichée via la fonction cv2.imshow(), cv2.waitKey(0) est utilisée pour attendre la clé et la fonction cv2.imwrite() est utilisée pour enregistrer l'image.
Conclusion :
Grâce aux exemples de code ci-dessus, nous pouvons voir qu'utiliser Python pour ajuster la luminosité et le contraste des images est très simple et peut être réalisé avec seulement quelques lignes de code. Grâce à différents réglages de paramètres, différents degrés de réglage de la luminosité et du contraste peuvent être obtenus pour répondre à différents besoins. Dans les applications pratiques, des méthodes et paramètres de réglage appropriés peuvent être sélectionnés en fonction de situations spécifiques pour obtenir les meilleurs résultats. J'espère que cet article sera utile aux lecteurs dans leur apprentissage et leur pratique du 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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

L'article traite des bibliothèques Python populaires comme Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask et Demandes, détaillant leurs utilisations dans le calcul scientifique, l'analyse des données, la visualisation, l'apprentissage automatique, le développement Web et H et H

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Fastapi ...
