Convertir un tableau numérique en image PIL en Python

Suraj Joshi 21 décembre 2022
  1. Convertir un tableau NumPy en image PIL en Python
  2. Convertir un tableau NumPy en image PIL Python avec la fonction Matplotlib Colormap
Convertir un tableau numérique en image PIL en Python

Ce tutoriel explique comment nous pouvons convertir le tableau NumPy en une image PIL en utilisant l’option Image.fromarray() du paquet PIL. La Python Imaging Library (PIL) est une bibliothèque en Python avec diverses fonctions de traitement d’images.

La fonction Image.fromarray() prend l’objet tableau comme entrée et renvoie l’objet image créé à partir de l’objet tableau.

Convertir un tableau NumPy en image PIL en Python

import numpy as np
from PIL import Image

image = Image.open("lena.png")
np_array = np.array(image)

pil_image = Image.fromarray(np_array)
pil_image.show()

Production :

Conversion d’un tableau NumPy en image PIL Python

Il lira l’image lena.png dans le répertoire de travail courant en utilisant la méthode open() de Image et retournera un objet image.

Nous convertissons ensuite cet objet image en un tableau NumPy en utilisant la méthode numpy.array().

Nous utilisons la fonction Image.fromarray() pour reconvertir le tableau en objet image PIL et finalement afficher l’objet image en utilisant la méthode show().

import numpy as np
from PIL import Image

array = np.random.randint(255, size=(400, 400), dtype=np.uint8)
image = Image.fromarray(array)
image.show()

Production :

Conversion d’un tableau NumPy auto-créé en image PIL Python

Ici, nous créons un tableau NumPy de taille 400x400 avec des nombres aléatoires allant de 0 à 255 puis nous convertissons le tableau en un objet Image en utilisant la fonction Image.fromarray() et nous affichons image en utilisant la méthode show().

Convertir un tableau NumPy en image PIL Python avec la fonction Matplotlib Colormap

import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
from matplotlib import cm

image_array = plt.imread("lena.jpg")
image_array = image_array / 255
image = Image.fromarray(np.uint8(cm.plasma(image_array) * 255))
image.show()

Production :

Conversion d’un tableau NumPy en image PIL Python en appliquant Matplotlib Colormap

Il applique la carte de couleurs plasma du paquet Matplotlib. Pour appliquer une carte de couleurs à une image, nous normalisons d’abord le tableau avec une valeur maximale de 1. La valeur maximale de l’élément dans image_array est de 255 dans l’exemple ci-dessus. Donc, nous divisons le image_array par 255 pour la normalisation.

Nous appliquons ensuite la carte de couleurs à image_array et nous la multiplions par 255 à nouveau. Ensuite, nous convertissons les éléments au format int en utilisant la méthode np.uint8(). Enfin, nous convertissons le tableau en image en utilisant la fonction Image.fromarray().

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Matplotlib Images