Maison >développement back-end >Tutoriel Python >Comment convertir des images RVB en niveaux de gris en Python à l'aide de Pillow et Matplotlib ?

Comment convertir des images RVB en niveaux de gris en Python à l'aide de Pillow et Matplotlib ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-01 07:49:10506parcourir

How to Convert RGB Images to Grayscale in Python Using Pillow and Matplotlib?

Conversion d'images RVB en niveaux de gris en Python

Dans le traitement d'images, la conversion d'images RVB en niveaux de gris est une opération courante. Bien que de nombreuses approches existent, trouver la méthode intégrée dans les bibliothèques puissantes comme NumPy ou Matplotlib peut simplifier votre tâche.

Bibliothèque Pillow :

Une solution simple consiste à utilisez la bibliothèque d'images Python (Pillow). Il offre une méthode pratique pour convertir les images RVB en niveaux de gris :

from PIL import Image
img = Image.open('image.png').convert('L')
img.save('greyscale.png')

Ce code lit l'image RVB, la convertit en niveaux de gris et enregistre l'image résultante.

Utilisation de Matplotlib avec une formule :

Une autre approche consiste à utiliser la formule Y' = 0,2989 R 0,5870 G 0,1140 B pour convertir les images RVB en niveaux de gris. Avec Matplotlib, vous pouvez implémenter cela comme :

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

def rgb2gray(rgb):
    return np.dot(rgb[...,:3], [0.2989, 0.5870, 0.1140])

img = mpimg.imread('image.png')     
gray = rgb2gray(img)    
plt.imshow(gray, cmap=plt.get_cmap('gray'), vmin=0, vmax=1)
plt.show()

Ce code charge l'image, la convertit en niveaux de gris à l'aide de la formule et affiche l'image 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!

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