Maison > développement back-end > Tutoriel Python > Comment puis-je convertir des images RVB en niveaux de gris en Python ?

Comment puis-je convertir des images RVB en niveaux de gris en Python ?

Mary-Kate Olsen
Libérer: 2024-12-12 20:23:13
original
454 Les gens l'ont consulté

How Can I Convert RGB Images to Grayscale in Python?

Conversion d'images RVB en niveaux de gris en Python

La conversion d'images RVB en niveaux de gris est une opération fondamentale dans le traitement d'image. En Python, il existe différentes approches pour accomplir cette tâche en utilisant des bibliothèques populaires telles que scikit-image, NumPy et Pillow.

Pillow

Pillow est une puissante bibliothèque Python pour la manipulation d'images. Il fournit une méthode pratique pour convertir les images RVB en niveaux de gris à l'aide de la fonction de conversion :

from PIL import Image
img = Image.open('image.png').convert('L')
Copier après la connexion

L'argument « L » spécifie que l'image doit être convertie en niveaux de gris, en préservant les valeurs de luminance. Si l'image d'entrée contient un canal alpha (transparence) et qu'elle doit être préservée, utilisez plutôt le mode 'LA'.

NumPy et Matplotlib

Une autre approche consiste à utilisez NumPy et Matplotlib. NumPy fournit une implémentation simple de la conversion RVB en niveaux de gris :

import numpy as np
def rgb2gray(rgb):
    return np.dot(rgb[...,:3], [0.2989, 0.5870, 0.1140])
Copier après la connexion

Cette fonction utilise une somme pondérée des valeurs de rouge, de vert et de bleu pour calculer l'intensité des niveaux de gris. Avec Matplotlib, vous pouvez charger et afficher l'image en niveaux de gris :

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
img = mpimg.imread('image.png')
gray = rgb2gray(img)
plt.imshow(gray, cmap=plt.get_cmap('gray'), vmin=0, vmax=1)
plt.show()
Copier après la connexion

scikit-image

scikit-image est une bibliothèque Python spécialisée pour le traitement d'images. Il propose une fonction appelée color.rgb2gray pour la conversion des niveaux de gris :

from skimage import color
img = color.rgb2gray(mpimg.imread('image.png'))
Copier après la connexion

Implémentation supplémentaire

La fonction fournie par Sebastian accomplit également la tâche efficacement, mais elle fonctionne sur les canaux RVB individuels et peuvent être moins efficaces lorsque vous travaillez avec de grandes images. Néanmoins, il démontre une implémentation simple de la formule de conversion en niveaux de gris.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal