Maison  >  Article  >  développement back-end  >  Comment utiliser Python pour effectuer des ajustements de balance des couleurs sur les images

Comment utiliser Python pour effectuer des ajustements de balance des couleurs sur les images

王林
王林original
2023-08-17 11:43:461539parcourir

Comment utiliser Python pour effectuer des ajustements de balance des couleurs sur les images

Comment utiliser Python pour ajuster la balance des couleurs des images

Introduction : Dans le traitement d'images, la balance des couleurs est une opération courante. En ajustant la balance des couleurs d'une image, vous pouvez modifier le ton général de l'image pour la rendre plus adaptée à vos besoins. Cet article expliquera comment utiliser le langage Python pour ajuster la balance des couleurs des images et fournira des exemples de code pour aider les lecteurs à le mettre en œuvre rapidement.

1. Le principe de la balance des couleurs
La balance des couleurs est l'opération consistant à ajuster l'intensité des différents canaux de couleur dans une image pour obtenir un effet de couleur global. De manière générale, la couleur d'une image se compose de trois canaux : rouge, vert et bleu (RVB). Le réglage de l'intensité de chaque canal peut modifier la répartition des couleurs de l'image, obtenant ainsi un effet de balance des couleurs. Pour les images RVB, le coefficient de gain est généralement utilisé pour représenter le degré d'ajustement de l'intensité de chaque canal.

2. Python réalise l'ajustement de la balance des couleurs
Python, en tant que langage de programmation populaire, est également largement utilisé dans le domaine du traitement d'images. Ce qui suit présentera les étapes de mise en œuvre de l'utilisation de Python et de la bibliothèque OpenCV pour ajuster la balance des couleurs des images.

  1. Importer les bibliothèques associées
import cv2
import numpy as np
  1. Lire et prétraiter l'image
# 读取图片
img = cv2.imread('image.jpg')
# 转换颜色空间为浮点数
img = img.astype(float) / 255
  1. Calculer le coefficient de gain
# 计算RGB各通道的平均值
avgR = np.mean(img[:, :, 2])
avgG = np.mean(img[:, :, 1])
avgB = np.mean(img[:, :, 0])
# 计算每个通道的增益系数
K = (avgR + avgG + avgB) / 3
Kr = K / avgR
Kg = K / avgG
Kb = K / avgB
  1. Ajuster l'intensité du canal de couleur
# 调整每个通道的强度
img[:, :, 2] *= Kr
img[:, :, 1] *= Kg
img[:, :, 0] *= Kb
  1. Une fois l'ajustement terminé, limitez valeur en pixels de l'image dans la plage de 0 ~ 255, et converti en une valeur entière
# 限制像素值范围在0~255
img = np.clip(img, 0, 1)
# 转换为整型
img = img * 255
img = img.astype(np.uint8)
  1. Afficher et enregistrer le résultat
# 显示调整后的图像
cv2.imshow('Balanced Image', img)
# 保存调整后的图像
cv2.imwrite('balanced_image.jpg', img)
# 等待关闭窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

Le code ci-dessus implémente le réglage de la balance des couleurs de l'image, et affiche et enregistre le réglage image sur le disque local. En modifiant le coefficient de gain, l'effet de couleur de l'image peut être encore modifié.

Résumé : Cet article présente brièvement les principes de la balance des couleurs et montre comment implémenter l'ajustement de la balance des couleurs à l'aide des bibliothèques Python et OpenCV. Les lecteurs peuvent ajuster les paramètres du code selon leurs besoins pour optimiser davantage l'effet de couleur de l'image. J'espère que cet article sera utile aux lecteurs dans le domaine du 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!

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