Trazo de imágenes con Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Introducción

En este laboratorio, aprenderá a trazar y manipular imágenes utilizando la biblioteca Matplotlib en Python. Aprenderá a importar datos de imágenes en matrices de NumPy, trazar matrices de NumPy como imágenes, aplicar esquemas de pseudocolores, agregar referencias de escala de color, examinar rangos de datos específicos y explorar diferentes esquemas de interpolación.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 89%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Importando datos de imágenes

Para comenzar, debemos importar las bibliotecas necesarias y cargar los datos de la imagen en una matriz de NumPy. En nuestro caso, usaremos la biblioteca PIL para cargar la imagen y luego la convertiremos en una matriz de NumPy.

from PIL import Image
import matplotlib.pyplot as plt
import numpy as np

img = np.asarray(Image.open('./stinkbug.png'))

Graficando imágenes

Ahora que tenemos los datos de la imagen en una matriz de NumPy, podemos graficarla utilizando la función imshow de matplotlib.pyplot. Esta función toma la matriz de la imagen como entrada y la muestra como una gráfica de imagen.

plt.imshow(img)

Aplicando esquemas de pseudocolores

Los esquemas de pseudocolores se pueden utilizar para mejorar el contraste y visualizar los datos de manera más fácil. Si la imagen es en escala de grises, podemos aplicar esquemas de pseudocolores especificando diferentes mapas de colores. Esto se puede hacer utilizando el parámetro cmap en la función imshow.

lum_img = img[:, :, 0]
plt.imshow(lum_img, cmap="hot")

Agregando una referencia de escala de color

Para proporcionar una referencia para la escala de color, podemos agregar una barra de color a la gráfica. Esto se puede hacer utilizando la función colorbar de matplotlib.pyplot.

imgplot = plt.imshow(lum_img)
plt.colorbar()

Examinando rangos de datos específicos

A veces, puede ser necesario examinar rangos de datos específicos en una imagen. Esto se puede hacer ajustando los límites del mapa de colores utilizando el parámetro clim en la función imshow. Esto nos permite centrar la atención en regiones específicas de la imagen mientras sacrificamos detalles en otras regiones.

min_value, max_value = 100, 200
plt.imshow(img, clim=(min_value, max_value))

Esquemas de interpolación de matrices

Al cambiar el tamaño de una imagen, es necesario interpolar los valores de los píxeles para llenar el espacio faltante. Se pueden utilizar diferentes esquemas de interpolación para determinar el valor de un píxel en función de sus píxeles circundantes. Matplotlib proporciona diferentes opciones de interpolación, como "nearest" (más cercano), "bilinear" (bilineal) y "bicubic" (bicúbica).

plt.imshow(img, interpolation="bilinear")

Resumen

En este laboratorio, has aprendido cómo trazar y manipular imágenes utilizando Matplotlib. Has aprendido cómo importar datos de imágenes en matrices de NumPy, trazar matrices de NumPy como imágenes, aplicar esquemas de pseudocolores, agregar referencias de escala de color, examinar rangos de datos específicos y explorar diferentes esquemas de interpolación. Estas habilidades serán útiles para visualizar y analizar imágenes en diversas aplicaciones.