Comment faire correspondre les couleurs des images à l'aide de Python

PHPz
Libérer: 2023-08-19 14:10:52
original
1282 Les gens l'ont consulté

Comment faire correspondre les couleurs des images à laide de Python

Comment utiliser Python pour faire correspondre les couleurs des images

Introduction :
Dans la société moderne, le traitement d'image a été largement utilisé dans de nombreux domaines, tels que les effets spéciaux de films, le diagnostic d'images médicales, etc. Parmi elles, la correspondance des couleurs des images est une technologie importante, qui peut rendre les couleurs entre les différentes images cohérentes, améliorant ainsi l'expérience utilisateur. Cet article explique comment utiliser Python pour faire correspondre les couleurs des images et l'explique en détail à travers des exemples de code.

1. Installer les bibliothèques dépendantes

Avant de commencer, nous devons nous assurer que nous avons installé l'environnement Python et la bibliothèque PIL (Python Imaging Library). Si la bibliothèque PIL n'est pas installée, vous pouvez l'installer via la commande suivante :

pip install pillow
Copier après la connexion

2. Lire les données de l'image

Tout d'abord, nous devons lire les données de l'image à faire correspondre et de l'image de référence, et les convertir en une structure de données exploitable. Supposons que nous ayons deux images : image.jpg是待匹配的图片,reference.jpg est l'image de référence. L'exemple de code est le suivant :

from PIL import Image

def read_image(filename):
    image = Image.open(filename)
    data = list(image.getdata())
    width, height = image.size
    return data, width, height

image_data, image_width, image_height = read_image('image.jpg')
reference_data, reference_width, reference_height = read_image('reference.jpg')
Copier après la connexion

3. Calculez la moyenne et l'écart type de chaque canal

Afin d'obtenir la correspondance des couleurs, nous devons calculer chacune des valeurs à -L'image doit être adaptée à l'image de référence. La moyenne et l'écart type du canal. L'exemple de code est le suivant :

import numpy as np

def calculate_mean_std(data):
    pixels = np.array(data, dtype=np.float32)
    mean = np.mean(pixels, axis=0)
    std = np.std(pixels, axis=0)
    return mean, std

image_mean, image_std = calculate_mean_std(image_data)
reference_mean, reference_std = calculate_mean_std(reference_data)
Copier après la connexion

4. Correspondance des couleurs

Avec la moyenne et l'écart type de chaque canal, nous pouvons utiliser la formule suivante pour la correspondance des couleurs :

matched_data = (image_data - image_mean) / image_std * reference_std + reference_mean
Copier après la connexion

L'exemple de code est le suivant :

def match_color(data, mean, std, reference_mean, reference_std):
    matched_data = np.array(data, dtype=np.float32)
    matched_data = (matched_data - mean) / std * reference_std + reference_mean
    matched_data = matched_data.clip(0, 255)
    return list(matched_data.astype(np.uint8))

matched_image_data = match_color(image_data, image_mean, image_std, reference_mean, reference_std)
Copier après la connexion

5 . Après avoir enregistré la correspondance

Enfin, nous enregistrons les données d'image correspondantes en tant que nouveau fichier image. L'exemple de code est le suivant :

def save_image(data, width, height, filename):
    image = Image.new('RGB', (width, height))
    image.putdata(data)
    image.save(filename)

save_image(matched_image_data, image_width, image_height, 'matched_image.jpg')
Copier après la connexion

Conclusion :
Grâce aux étapes ci-dessus, nous avons appris à utiliser Python pour faire correspondre les couleurs des images. . Cette technologie a de nombreuses applications dans le traitement d’images, la conception et d’autres domaines, et peut améliorer efficacement la qualité et la cohérence des images. J'espère que cet article vous sera utile et vous êtes invités à l'essayer et à l'appliquer à des projets réels.

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