Método Matplotlib imread()
El método imread() es una función de la biblioteca Matplotlib, utilizada para leer datos de imagen desde un archivo de imagen.
El método imread() devuelve un objeto numpy.ndarray, cuya forma es(nrows, ncols, nchannels), que representa el número de filas, columnas y canales de la imagen leída:
- Si la imagen es en escala de grises, nchannels es 1.
- Si es una imagen en color, nchannels es 3 o 4, que representan respectivamente los tres canales de color rojo, verde, azul y un canal alfa.
La sintaxis del método imread() es la siguiente:
matplotlib.pyplot.imread(fname, format=None)
Descripción de parámetros:
fname: especifica el nombre de archivo o la ruta del archivo de imagen a leer; puede ser una ruta relativa o absoluta.format: el parámetro especifica el formato del archivo de imagen; si no se especifica, por defecto se reconoce automáticamente el formato según la extensión del archivo.
El siguiente ejemplo demuestra cómo usar la función imread para leer datos de imagen de un archivo de imagen y mostrarlos:
Ejemplo
# Leer el archivo de imagen, URL de descarga: /static.jyshare.com/images/demo/map.jpeg
img = plt.imread('map.jpeg')
# Mostrar la imagen
plt.imshow(img)
plt.show()
En el ejemplo anterior, primero usamos el método imread() para leer los datos de imagen del archivo map.jpeg y los almacenamos en la variable img.
Luego usamos el método imshow() para mostrar esta imagen.
Nota: al mostrar la imagen no especificamos un mapa de colores, porque el método imread() ya ha convertido los datos de imagen al formato RGB según el mapa de colores correcto, por lo que podemos usar directamente el mapa de colores predeterminado para mostrar la imagen.
El resultado mostrado es el siguiente:

Podemos modificar la imagen cambiando el array de numpy.
Por ejemplo, si multiplicamos el array por un número0≤≤1, oscurecemos la imagen:
Ejemplo
# Leer el archivo de imagen, URL de descarga: /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)
# Mostrar la imagen
plt.figure(figsize=(10,6))
for i in range(1,5):
plt.subplot(2,2,i)
x = 1 - 0.2*(i-1)
plt.axis('off') #hide coordinate axes
plt.title('x={:.1f}'.format(x))
plt.imshow(tiger*x)
plt.show()
El resultado mostrado es el siguiente:

El siguiente ejemplo se utiliza para recortar la imagen:
Ejemplo
# Leer el archivo de imagen, URL de descarga: /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)
# Mostrar la imagen
plt.figure(figsize=(6,6))
plt.imshow(tiger[:300,100:400,:])
plt.axis('off')
plt.show()
El resultado mostrado es el siguiente:

Si establecemos los elementos del array de las coordenadas verde y azul del color RGB a 0, obtendremos una imagen roja:
Ejemplo
# Leer el archivo de imagen, URL de descarga: /static.jyshare.com/images/mix/tiger.jpeg
img_array = plt.imread('tiger.jpeg')
tiger = img_array/255
#print(tiger)
# Mostrar la imagen
red_tiger = tiger.copy()
red_tiger[:, :,[1,2]] = 0
plt.figure(figsize=(10,10))
plt.imshow(red_tiger)
plt.axis('off')
plt.show()
El resultado mostrado es el siguiente:
