En este tutorial, aprenderemos a realizar procesamiento de imágenes utilizando la biblioteca OpenCV en Python. Exploraremos operaciones básicas como la lectura de imágenes, cambios en la apariencia, detección de contornos y más.
1. Instalación de OpenCV
Antes de comenzar, asegúrate de tener OpenCV instalado en tu entorno de desarrollo:
pip install opencv-python
2. Lectura y Visualización de Imágenes
Comenzaremos cargando una imagen y visualizándola con OpenCV:
import cv2 from matplotlib import pyplot as plt # Cargar una imagen desde el archivo imagen = cv2.imread('imagen.jpg') # Convertir la imagen de BGR a RGB (OpenCV usa el formato BGR por defecto) imagen_rgb = cv2.cvtColor(imagen, cv2.COLOR_BGR2RGB) # Visualizar la imagen plt.imshow(imagen_rgb) plt.title('Imagen Original') plt.axis('off') plt.show()
3. Cambios en la Apariencia de la Imagen
Realizaremos cambios en la apariencia de la imagen, como la conversión a escala de grises y la redimensión:
# Convertir la imagen a escala de grises imagen_gris = cv2.cvtColor(imagen, cv2.COLOR_BGR2GRAY) # Redimensionar la imagen imagen_redimensionada = cv2.resize(imagen_rgb, (300, 200)) # Visualizar las imágenes procesadas plt.subplot(1, 2, 1) plt.imshow(imagen_gris, cmap='gray') plt.title('Escala de Grises') plt.axis('off') plt.subplot(1, 2, 2) plt.imshow(imagen_redimensionada) plt.title('Imagen Redimensionada') plt.axis('off') plt.show()
4. Detección de Contornos
Realizaremos la detección de contornos en una imagen:
# Convertir la imagen a escala de grises para la detección de contornos imagen_contornos = cv2.cvtColor(imagen, cv2.COLOR_BGR2GRAY) # Aplicar un desenfoque para mejorar la detección de contornos imagen_contornos = cv2.GaussianBlur(imagen_contornos, (5, 5), 0) # Detección de contornos contornos, jerarquia = cv2.findContours(imagen_contornos, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # Dibujar los contornos en la imagen original imagen_con_contornos = imagen_rgb.copy() cv2.drawContours(imagen_con_contornos, contornos, -1, (0, 255, 0), 2) # Visualizar la imagen con contornos plt.imshow(imagen_con_contornos) plt.title('Detección de Contornos') plt.axis('off') plt.show()
5. Guardar la Imagen Procesada
Finalmente, guardaremos la imagen procesada:
# Guardar la imagen con contornos cv2.imwrite('imagen_con_contornos.jpg', cv2.cvtColor(imagen_con_contornos, cv2.COLOR_RGB2BGR)) print('Imagen guardada exitosamente como imagen_con_contornos.jpg')
En este tutorial, exploramos el procesamiento de imágenes con OpenCV en Python. Aprendiste a cargar, visualizar, realizar cambios en la apariencia y detectar contornos en imágenes.
OpenCV es una poderosa biblioteca para el procesamiento de imágenes, y este tutorial te proporciona los fundamentos necesarios para comenzar a trabajar con imágenes en Python.