Converti un array NumPy in un'immagine PIL in Python

Suraj Joshi 21 dicembre 2022
  1. Converti un array NumPy in un’immagine PIL in Python
  2. Converti un array NumPy in immagine PIL Python con la mappa dei colori Matplotlib
Converti un array NumPy in un'immagine PIL in Python

Questo tutorial spiega come possiamo convertire l’array NumPy in un’immagine PIL usando Image.fromarray() dal pacchetto PIL. La Python Imaging Library (PIL) è una libreria in Python con varie funzioni di elaborazione delle immagini.

La funzione Image.fromarray() prende l’oggetto array come input e restituisce l’oggetto immagine creato dall’oggetto array.

Converti un array NumPy in un’immagine PIL in 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()

Produzione:

Converti un array NumPy in un’immagine PIL Python

Leggerà l’immagine lena.png nella directory di lavoro corrente usando il metodo open() da Image e restituirà un oggetto immagine.

Quindi convertiamo questo oggetto immagine in un array NumPy usando il metodo numpy.array().

Usiamo la funzione Image.fromarray() per riconvertire l’array nell’oggetto immagine PIL e infine visualizzare l’oggetto immagine usando il metodo 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()

Produzione:

Converti un array NumPy auto-creato in PIL Image Python

Qui, creiamo un array NumPy di ​​dimensione 400x400 con numeri casuali che vanno da 0 a 255 e quindi convertiamo l’array in un oggetto Image utilizzando la funzione Image.fromarray() e visualizziamo l’immagine image Utilizzando il metodo show().

Converti un array NumPy in immagine PIL Python con la mappa dei colori Matplotlib

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()

Produzione:

Converti un array NumPy in immagine PIL Python applicando Matplotlib Colormap

Applica la mappa di colori plasma dal pacchetto Matplotlib. Per applicare una mappa di colori a un’immagine, normalizziamo prima l’array con un valore massimo di 1. Il valore massimo dell’elemento in image_array è 255 nell’esempio precedente. Quindi, dividiamo image_array per 255 per la normalizzazione.

Poi applichiamo il colormap a image_array e la moltiplichiamo di nuovo per 255. Quindi, convertiamo gli elementi nel formato int utilizzando il metodo np.uint8(). Infine, convertiamo l’array nell’immagine usando la funzione Image.fromarray().

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Articolo correlato - Matplotlib Images