Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

OpenCV con Python, Unidad 3 — Manejo básico de imágenes, 3.2 — Manipulación básica ·

Rotaciones y flips

Rotaciones y flips

Introducción

En la manipulación básica de imágenes, las rotaciones y flips son operaciones cruciales que permiten transformar visualmente una imagen sin modificar su contenido. Estas transformaciones son fundamentales en diversas aplicaciones como el reconocimiento de objetos, la generación de datos sintéticos para entrenamiento de modelos de visión por computador y la presentación de imágenes a algoritmos en formatos específicos.

Explicación principal con ejemplos

Rotaciones

La rotación de una imagen implica girarla sobre un punto central. En OpenCV, podemos realizar rotaciones utilizando el método rotate o las funciones de transformación cv2.getRotationMatrix2D y cv2.warpAffine. A continuación, se muestra un ejemplo:

import cv2

# Cargar la imagen
img = cv2.imread('imagen.jpg')

# Definir el ángulo de rotación (grados)
angle = 45

# Calcular la matriz de transformación
M = cv2.getRotationMatrix2D((img.shape[1]//2, img.shape[0]//2), angle, 1.0)

# Aplicar la rotación
rotated_img = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))

# Mostrar imágenes
cv2.imshow('Imagen Original', img)
cv2.imshow('Imagen Rotada', rotated_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Flips

Un flip (o volteo) implica reflejar una imagen sobre un eje. En OpenCV, se pueden realizar flips en el eje horizontal (flipCode = 1), el eje vertical (flipCode = -1) o ambos (flipCode = 0). El siguiente código muestra cómo aplicar un flip:

# Definir el tipo de flip (horizontal)
flip_code = 1

# Aplicar el flip
flipped_img = cv2.flip(img, flip_code)

# Mostrar imágenes
cv2.imshow('Imagen Original', img)
cv2.imshow('Imagen Flip Horizontal', flipped_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Errores típicos / trampas

  1. Rotaciones con ángulos no enteros: Asegúrate de que el ángulo de rotación es un número entero para evitar resultados imprecisos.
  1. Ejes incorrectos en los flips: Confunde entre flipCode = 0 (ambos ejes) y flipCode = -1 (eje vertical). Verifica siempre la documentación de OpenCV.
  1. Proporción de aspecto alterada: Rotaciones o flips pueden cambiar la proporción de aspecto de la imagen, lo que afecta a modelos de aprendizaje automático que dependan en ella.

Checklist accionable

  1. Verifica que el punto central de rotación sea correcto.
  2. Asegúrate de usar flipCode correctamente (0: ambos ejes, 1: horizontal, -1: vertical).
  3. Comprueba la precisión del ángulo de rotación, especialmente si es un número no entero.
  4. Validar que la imagen esté en el formato correcto antes de aplicar transformaciones.
  5. Verifica siempre los resultados visuales después de cada operación.

Cierre con "Siguientes pasos"

Siguientes pasos

  • Aprender más: Explora cómo combinar rotaciones y flips para crear efectos visuales complejos en tus imágenes.
  • Práctica adicional: Aplica estas transformaciones a una serie de imágenes variadas para mejorar tu comprensión del impacto visual.
  • Optimización: Asegúrate de optimizar el rendimiento al aplicar transformaciones, especialmente en imágenes grandes o con frecuencias altas.

Siguiendo estos pasos y cuidando los detalles, podrás manipular imágenes de manera efectiva utilizando OpenCV.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).