Matplotlib imread in Python
L’articolo spiega come leggere un file immagine in un array usando il metodo imread()
dal pacchetto Matplotlib.
matplotlib.pyplot.imread()
matplotlib.pyplot.imread()
legge un’immagine da un file in un array.
Sintassi
matplotlib.pyplot.imread(fname, format=None)
Qui, fname
rappresenta il nome del file immagine da leggere e format
rappresenta il formato del file immagine. Se format=None
la funzione estrarrà il formato dal nome del file.
La funzione restituisce un array con la forma MxN
per immagini in scala di grigi, MxNx3
per immagini RGB e MxNx4
per immagini RGBA
, dove M
è la larghezza e N
è l’altezza dell’immagine.
Esempio: leggere le immagini utilizzando la funzione matplotlib.pyplot.imread()
import numpy as np
import matplotlib.pyplot as plt
img_array = plt.imread("lena.png")
plt.imshow(img_array)
plt.title("Display Image read using imread()")
plt.axis("off")
plt.show()
Produzione:
Legge l’immagine lena.png
nella directory di lavoro corrente in un array usando il metodo imread()
e poi mostra l’immagine usando il metodo imshow()
.
Per impostazione predefinita, ha Asse X
e Asse Y
con segni di spunta nell’immagine visualizzata. Per rimuovere gli assi e le tacche, usiamo l’istruzione plt.axis('off')
. Infine, usiamo la funzione matplotlib.pyplot.show()
per mostrare l’immagine.
Possiamo visualizzare la forma dell’array di immagini utilizzando l’attributo shape
.
import matplotlib.pyplot as plt
img_array = plt.imread("lena.png")
print(img_array.shape)
Produzione:
(330, 330, 3)
Stampa la forma dell’immagine - (330, 330, 3)
, che rappresenta un array di immagini tridimensionale di larghezza 330, altezza 330 e 3 canali.
Esempio: ritagliare immagini utilizzando la funzione matplotlib.pyplot.imread()
Dopo che matplotlib.pyplot.imread()
ha letto un’immagine in un array NumPy, possiamo ritagliare l’immagine indicizzando l’array usando l’operatore :
.
import matplotlib.pyplot as plt
img_array = plt.imread("lena.png")[50:300, 30:300]
plt.imshow(img_array)
plt.axis("off")
plt.title("Clipped Image")
plt.show()
Produzione:
Qui, il metodo imread()
legge l’intera immagine in un array, selezioniamo solo gli elementi dalla posizione 50 alla 300 in larghezza e gli elementi dalla posizione 30 alla 300 in altezza e memorizziamo l’array indicizzato in img_array
. Quindi visualizziamo l’array indicizzato usando la funzione imshow()
.
import matplotlib.pyplot as plt
import matplotlib.patches as patches
img_array = plt.imread("lena.png")
fig, ax = plt.subplots()
im = ax.imshow(img_array)
patch = patches.Circle((160, 160), radius=150, transform=ax.transData)
im.set_clip_path(patch)
ax.axis("off")
plt.show()
Produzione:
Visualizza l’immagine ritagliata utilizzando una toppa circolare. Qui, ritagliamo l’immagine usando una toppa circolare con il centro a (160, 160)
e il raggio a 150.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn