Converti un array NumPy in un'immagine PIL in Python
- Converti un array NumPy in un’immagine PIL in Python
- Converti un array NumPy in immagine PIL Python con la mappa dei colori Matplotlib
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:
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:
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:
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()
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn