Método Matplotlib imshow()
La función imshow() es una función de la biblioteca Matplotlib que se utiliza para mostrar imágenes.
La función imshow() se usa a menudo para dibujar imágenes bidimensionales en escala de grises o imágenes en color.
La función imshow() se puede utilizar para dibujar matrices, mapas de calor, mapas, etc.
El formato de sintaxis del método imshow() es el siguiente:
imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, *, data=None, **kwargs)
Descripción de parámetros:
X: Datos de entrada. Pueden ser matrices bidimensionales, matrices tridimensionales, objetos de imagen PIL, objetos de ruta de matplotlib, etc.cmap: Mapeo de color. Se utiliza para controlar los colores correspondientes a los diferentes valores en la imagen. Se pueden seleccionar mapeos de color incorporados, comogray、hot、jetetc., o se puede personalizar el mapeo de color.norm: Se utiliza para controlar el método de normalización de valores. Se puede elegirNormalize、LogNormy otros métodos de normalización.aspect: Controla la proporción de aspecto (aspect ratio) de la imagen. Se puede establecer comoautoo un número.interpolation: Método de interpolación. Se utiliza para controlar la suavidad y el nivel de detalle de la imagen. Se pueden elegirnearest、bilinear、bicubicy otros métodos de interpolación.alpha: Transparencia de la imagen. El rango de valores es de 0 a 1.origin: Posición del origen del eje de coordenadas. Se puede establecer comoupperolower。extent: Controla el rango de datos mostrado. Se puede establecer como[xmin, xmax, ymin, ymax]。vmin、vmax: Controla el rango de valores del mapeo de color.filternorm 和 filterrad: Objeto utilizado para el filtrado de imágenes. Se puede establecer comoNone、antigrain、freetypeetc.imlim: Se utiliza para especificar el rango de visualización de la imagen.resample: Se utiliza para especificar el método de remuestreo de la imagen.url: Se utiliza para especificar el enlace de la imagen.
A continuación se muestran algunos ejemplos de uso de la función imshow().
Mostrar imagen en escala de grises
Ejemplo
import numpy as np
# Generar una matriz aleatoria bidimensional
img = np.random.rand(10, 10)
# Dibujar imagen en escala de grises
plt.imshow(img, cmap='gray')
# Mostrar imagen
plt.show()
En el ejemplo anterior generamos una matriz aleatoria de 10x10 y usamos la función imshow() para mostrarla como una imagen en escala de grises.
Configuramos el parámetro cmap como gray, lo que significa que se usará un mapeo de color en escala de grises para mostrar la imagen.
El resultado se muestra a continuación:

Mostrar imagen en color
Ejemplo
import numpy as np
# Generar una imagen en color aleatoria
img = np.random.rand(10, 10, 3)
# Dibujar imagen en color
plt.imshow(img)
# Mostrar imagen
plt.show()
En el ejemplo anterior generamos una imagen en color aleatoria de 10x10 y usamos la función imshow() para mostrarla.
Como la imagen en color es una matriz tridimensional, no es necesario configurar el parámetro cmap.
El resultado se muestra a continuación:

Mostrar mapa de calor
Ejemplo
import numpy as np
# Generar una matriz aleatoria bidimensional
data = np.random.rand(10, 10)
# Dibujar mapa de calor
plt.imshow(data, cmap='hot')
# Mostrar imagen
plt.colorbar()
plt.show()
En el ejemplo anterior generamos una matriz aleatoria de 10x10 y usamos la función imshow() para mostrarla como un mapa de calor.
Configuramos el parámetro cmap como hot, lo que significa que se usará un mapeo de color de calor para mostrar la imagen.
Además, agregamos una barra de color (colorbar) para poder ver la relación entre los valores de los datos y los colores.
El resultado se muestra a continuación:

Mostrar mapa
Ejemplo
import numpy as np
from PIL import Image
# Cargar imagen de mapa, dirección de descarga: /static.jyshare.com/images/demo/map.jpeg
img = Image.open('map.jpg')
# Convertir a matriz
data = np.array(img)
# Dibujar mapa
plt.imshow(data)
# Ocultar ejes
plt.axis('off')
# Mostrar imagen
plt.show()
En el ejemplo anterior cargamos una imagen de mapa y la convertimos en una matriz.
Luego usamos la función imshow() para mostrarla y usamos la funciónaxis('off')para ocultar los ejes y poder ver el mapa mejor.
El resultado se muestra a continuación:

Mostrar matriz
Ejemplo
import numpy as np
# Generar una matriz aleatoria
data = np.random.rand(10, 10)
# Dibujar matriz
plt.imshow(data)
# Mostrar imagen
plt.show()
En el ejemplo anterior generamos una matriz aleatoria y usamos la función imshow() para mostrarla como una imagen.
Como la matriz también es una matriz bidimensional, se puede mostrar usando la función imshow().
El resultado se muestra a continuación:

Más ejemplos
A continuación se crea una matriz numpy bidimensional de 4x4 y se muestran tres formas diferentes de visualización con imshow.
- La primera imagen muestra el modo de mapeo de color en escala de grises, sin mezcla de colores (blending).
- La segunda imagen muestra la imagen con el mapeo de color viridis, tampoco hay mezcla de colores.
- La tercera imagen muestra la imagen con el mapeo de color viridis y utiliza el método de interpolación bicúbica para la mezcla de colores.
Ejemplo
import numpy as np
n = 4
# Crear una matriz numpy bidimensional de n x n
a = np.reshape(np.linspace(0,1,n**2), (n,n))
plt.figure(figsize=(12,4.5))
# La primera imagen muestra el modo de mapeo de color en escala de grises, sin mezcla de colores
plt.subplot(131)
plt.imshow(a, cmap='gray', interpolation='nearest')
plt.xticks(range(n))
plt.yticks(range(n))
# Mapeo en grises, sin mezcla
plt.title('Gray color map, no blending', y=1.02, fontsize=12)
# La segunda imagen muestra la imagen con el mapeo de color viridis, tampoco hay mezcla de colores
plt.subplot(132)
plt.imshow(a, cmap='viridis', interpolation='nearest')
plt.yticks([])
plt.xticks(range(n))
# Mapeo viridis, sin mezcla
plt.title('Viridis color map, no blending', y=1.02, fontsize=12)
# La tercera imagen muestra la imagen con el mapeo de color viridis y utiliza el método de interpolación bicúbica para la mezcla de colores
plt.subplot(133)
plt.imshow(a, cmap='viridis', interpolation='bicubic')
plt.yticks([])
plt.xticks(range(n))
# Mapeo viridis, mezcla bicúbica
plt.title('Viridis color map, bicubic blending', y=1.02, fontsize=12)
plt.show()
El resultado se muestra a continuación:
