Data Visualization

Rectángulos superpuestos sobre imágenes con Matplotlib

Spread the love

Matplotlib es una versátil biblioteca de Python reconocida por sus capacidades de visualización de datos. Más allá de trazar datos, sobresale en la manipulación de imágenes, permitiéndole superponer formas directamente sobre las imágenes. Este tutorial demuestra cómo agregar rectángulos a las imágenes usando Matplotlib de manera eficiente.

Tabla de Contenido

Dibujando Rectángulos en Matplotlib

Antes de trabajar con imágenes, vamos a dominar el dibujo de rectángulos en figuras estándar de Matplotlib. Este paso fundamental es crucial para comprender el proceso de superposición de imágenes.

import matplotlib.pyplot as plt
import matplotlib.patches as patches

# Crear figura y ejes
fig, ax = plt.subplots()

# Definir rectángulo
rect = patches.Rectangle((0.1, 0.1), 0.5, 0.5, linewidth=1, edgecolor='r', facecolor='none')

# Agregar rectángulo a los ejes
ax.add_patch(rect)

# Establecer límites de los ejes (opcional)
ax.set_xlim([0, 1])
ax.set_ylim([0, 1])

# Mostrar gráfica
plt.show()

Este código genera un rectángulo simple. Vamos a diseccionarlo:

  • matplotlib.pyplot as plt: Importa la biblioteca de trazado Matplotlib.
  • matplotlib.patches as patches: Importa el módulo patches, que contiene objetos de forma como rectángulos.
  • patches.Rectangle((x, y), width, height): Crea un rectángulo. (x, y) especifica la esquina inferior izquierda; width y height definen sus dimensiones. Las coordenadas están normalizadas (0 a 1).
  • linewidth, edgecolor, facecolor: Controlan la apariencia del rectángulo. facecolor='none' crea solo un contorno.
  • ax.add_patch(rect): Agrega el rectángulo a los ejes.
  • ax.set_xlim() y ax.set_ylim(): Establecen los límites del eje x e y (opcional, para una mejor visualización).

Superponiendo Rectángulos en Imágenes

Ahora, vamos a extender esto para superponer rectángulos sobre imágenes. Usaremos imread de Matplotlib para cargar la imagen.

import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.image as mpimg

# Cargar imagen
img = mpimg.imread('your_image.jpg')  # Reemplazar con la ruta de su imagen

# Crear figura y ejes
fig, ax = plt.subplots()

# Mostrar imagen
ax.imshow(img)

# Crear rectángulo (coordenadas de píxeles)
rect = patches.Rectangle((100, 100), 150, 100, linewidth=2, edgecolor='b', facecolor='none')

# Agregar rectángulo a los ejes
ax.add_patch(rect)

# Mostrar gráfica
plt.show()

Esto es similar al ejemplo anterior, pero:

  • mpimg.imread('your_image.jpg'): Carga la imagen. Recuerde reemplazar 'your_image.jpg' con la ruta de su imagen.
  • ax.imshow(img): Muestra la imagen en los ejes.
  • Las coordenadas del rectángulo (100, 100) están ahora en coordenadas de píxeles. Ajuste estos valores para posicionar el rectángulo.

Este método le permite anotar imágenes de manera efectiva. Experimente con coordenadas, tamaños, colores y anchos de línea para personalizar la apariencia y la colocación del rectángulo. Recuerde que las coordenadas son relativas a las dimensiones de píxeles de la imagen.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *