Matplotlib imread en Python
El artículo explica cómo podemos leer un archivo de imagen en un array usando el método imread()
del paquete Matplotlib.
matplotlib.pyplot.imread()
El matplotlib.pyplot.imread()
lee una imagen de un archivo en un array.
Sintaxis
matplotlib.pyplot.imread(fname, format=None)
Aquí, fname
representa el nombre del archivo de imagen que se va a leer, y format
representa el formato del archivo de imagen. Si format=None
la función extraerá el formato del nombre del archivo.
La función devuelve un array con la forma MxN
para las imágenes en escala de grises, MxNx3
para las imágenes RGB, y MxNx4
para las imágenes RGBA
, donde M
es el ancho y N
es el alto de la imagen.
Ejemplo: Leer imágenes usando la función 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()
Producción:
Lee la imagen lena.png
en el directorio de trabajo actual en un array usando el método imread()
y luego muestra la imagen usando el método imshow()
.
Por defecto, tiene el eje X y el eje Y con marcas en la imagen mostrada. Para eliminar los ejes y las garrapatas, utilizamos la sentencia plt.axis('off')
. Finalmente, usamos la función matplotlib.pyplot.show()
para mostrar la imagen.
Podemos ver la forma del array de imágenes usando el atributo shape
.
import matplotlib.pyplot as plt
img_array = plt.imread("lena.png")
print(img_array.shape)
Producción :
(330, 330, 3)
Imprime la forma de la imagen - (330, 330, 3)
, representando un array de imágenes tridimensionales de ancho como 330, alto como 330, y 3 canales.
Ejemplo: Recortar imágenes usando la función matplotlib.pyplot.imread()
Después de que matplotlib.pyplot.imread()
lea una imagen en un array NumPy, podemos recortar la imagen indexando el array usando el operador :
.
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()
Producción:
Aquí, el método imread()
lee la imagen completa en un array, y sólo seleccionamos los elementos de la posición 50 a la 300 en anchura y los elementos de la posición 30 a la 300 en altura y almacena el array indexado en img_array
. Luego mostramos el array indexada usando la función 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()
Producción:
Muestra la imagen recortada con un parche circular. Aquí, recortamos la imagen usando un parche circular con el centro en (160, 160)
y el radio como 150.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn