Salva NumPy Array come immagine in Python

Manav Narula 30 gennaio 2023
  1. Usa la funzione Image.fromarray() per salvare un array NumPy come immagine
  2. Usa la funzione imageio.imwrite() per salvare un array NumPy come immagine
  3. Usa la funzione matplotlib.pyplot.imsave() per salvare un array NumPy come immagine
  4. Usa la funzione cv2.imwrite() per salvare un array NumPy come immagine
Salva NumPy Array come immagine in Python

In Python, il modulo numpy viene utilizzato per lavorare con gli array. Ci sono molti moduli disponibili in Python che ci consentono di leggere e memorizzare immagini.

Le immagini possono essere pensate come un array di pixel diversi memorizzati in posizioni specifiche con rispettivi codici colore. Quindi, potremmo incontrare situazioni in cui dobbiamo convertire e salvare un array come immagine.

In questo tutorial, discuteremo come salvare un array numpy come immagine.

Usa la funzione Image.fromarray() per salvare un array NumPy come immagine

La funzione fromarray() è usata per creare una memoria immagine da un oggetto che esporta l’array. Possiamo quindi salvare questa memoria immagine nella posizione desiderata fornendo il percorso richiesto e il nome del file.

Per esempio,

import numpy as np
from PIL import Image

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

im = Image.fromarray(array)
im.save("filename.jpeg")

Per prima cosa creiamo un array che memorizza i codici colore RGB e poi li esportiamo. Possiamo specificare il formato desiderato della nostra immagine nel nome del file. Può essere jpeg, png o qualsiasi altro formato di immagine comunemente usato. Questo è comune a tutti i metodi discussi di seguito.

Usa la funzione imageio.imwrite() per salvare un array NumPy come immagine

In precedenza, il modulo scipy aveva la funzione imsave() per salvare array numpy come immagini. Tuttavia, nelle versioni recenti, è stato deprecato e la funzione imwrite() di image.io() è stata consigliata per eseguire questa operazione e ha guadagnato popolarità per la sua semplicità.

Il codice seguente mostra come utilizzare questa funzione.

import imageio
import numpy as np

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

imageio.imwrite("filename.jpeg", array)

Usa la funzione matplotlib.pyplot.imsave() per salvare un array NumPy come immagine

Il modulo matplotlib ha una varietà di funzioni disponibili per lavorare con le immagini.

La funzione imsave() può salvare un array come file immagine.

Per esempio,

import matplotlib.pyplot as plt
import numpy as np

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

plt.imsave("filename.jpeg", array)

Usa la funzione cv2.imwrite() per salvare un array NumPy come immagine

Il modulo OpenCV viene spesso utilizzato per l’elaborazione delle immagini in Python. La funzione imwrite() di questo modulo può esportare un array numpy come file immagine.

Per esempio,

import cv2
import numpy as np

array = np.arange(0, 737280, 1, np.uint8)
array = np.reshape(array, (1024, 720))

cv2.imwrite("filename.jpeg", array)
Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn