OpenCV (Open Source Computer Vision Library) es la biblioteca de código abierto más utilizada para visión por computador y procesamiento de imágenes. Con más de 2500 algoritmos optimizados, OpenCV permite manipular imágenes y vídeo, detectar y reconocer objetos, analizar movimiento, calibrar cámaras y ejecutar modelos de deep learning, todo ello desde Python mediante su interfaz cv2.
La integración nativa con NumPy hace que las imágenes se representen como arrays multidimensionales, lo que facilita la interoperabilidad con el ecosistema científico de Python (Matplotlib, Scikit-learn, TensorFlow, PyTorch). OpenCV está optimizada internamente en C/C++, por lo que ofrece un rendimiento excelente incluso para aplicaciones en tiempo real como vigilancia, robótica o conducción autónoma.
El ecosistema de OpenCV abarca desde operaciones básicas (lectura, redimensionado, rotación, dibujo) hasta técnicas avanzadas de procesamiento (filtros, detección de bordes, umbralización, morfología), análisis geométrico (contornos, formas, transformada de Hough), detección de características (SIFT, ORB, matching), procesamiento de vídeo (captura, flujo óptico, seguimiento), deep learning con el módulo DNN (YOLO, SSD, MobileNet) y aplicaciones completas como reconocimiento facial, OCR y realidad aumentada.
Novedades de OpenCV 4.10+
La rama 4.10+ consolida la biblioteca como pieza central del pipeline moderno de visión por computador. Los cambios más relevantes para el desarrollador Python son los siguientes:
- Integración estable con ONNX Runtime dentro del módulo
cv2.dnn:readNetFromONNXacepta modelos exportados desde Ultralytics, Transformers, Detectron2 y otras suites sin conversiones intermedias, con soporte explícito para opset 11 a 18. - Backend CUDA acelerado con
DNN_BACKEND_CUDAyDNN_TARGET_CUDA_FP16, que reduce la latencia de inferencia en GPU hasta un orden de magnitud respecto al backend de CPU y soporta también TensorRT como backend alternativo. - Deep Learning module ampliado con utilidades de alto nivel:
cv2.dnn.DetectionModel,cv2.dnn.ClassificationModel,cv2.dnn.SegmentationModelycv2.dnn.TextDetectionModel, que encapsulan el pipeline de blob, forward y postprocesado. - Soporte nativo para detectores modernos: YOLOv8, YOLOv9, YOLO11, DETR y RF-DETR se cargan directamente vía ONNX y se ejecutan con Non-Maximum Suppression integrada mediante
cv2.dnn.NMSBoxes. - Integración opcional con MediaPipe de Google para pipelines móviles y en tiempo real (rostros, manos, pose, segmentación selfie) combinada con OpenCV para visualización y postprocesado.
- Python type hints mejorados: firmas tipadas en el stub
cv2.pyi, compatibilidad connumpy.typing.NDArrayy descriptores claros paraMat,UMat,Point,SizeyRect. - Nuevas contribuciones en
opencv-contrib-python:face.FaceRecognizerSF, módulosmccpara calibración de color, ampliaciones deximgprocy avances enarucoybarcode.
Qué incluye este itinerario
- Introducción y entorno: qué es OpenCV, instalación con pip, representación de imágenes como arrays NumPy, lectura y escritura de imágenes, espacios de color (BGR, RGB, HSV, escala de grises).
- Operaciones básicas: redimensionar, recortar, rotar, voltear, transformaciones afines y de perspectiva, dibujo de formas y texto, operaciones aritméticas y bitwise.
- Procesamiento de imágenes: filtros de suavizado (gaussiano, mediana, bilateral), detección de bordes (Canny, Sobel, Laplacian), umbralización (binaria, adaptativa, Otsu), operaciones morfológicas y convolución con kernels personalizados.
- Histogramas y color: cálculo y visualización de histogramas, ecualización y CLAHE, filtrado de color con
inRangeen HSV, retroproyección y comparación de histogramas. - Contornos y formas: detección de contornos, propiedades geométricas (área, perímetro, centroide), detección de formas, transformada de Hough para líneas y círculos, y template matching.
- Features y descriptores: detección de esquinas (Harris, Shi-Tomasi), SIFT, ORB, feature matching con BFMatcher y FLANN, homografía y alineación de imágenes.
- Vídeo:
VideoCaptureyVideoWriter, flujo óptico (Farneback, Lucas-Kanade), sustracción de fondo (MOG2, KNN), seguimiento de objetos (CSRT, KCF, MOSSE, CamShift). - Deep learning: módulo DNN, detección de rostros con Haar Cascades y DNN, clasificación con MobileNet, detección de objetos con YOLO y SSD.
- Aplicaciones prácticas: reconocimiento facial (LBPH), OCR con Tesseract, realidad aumentada, escáner de documentos y panorama con image stitching.
Público objetivo
- Desarrolladores Python que necesitan integrar visión por computador en sus proyectos.
- Científicos de datos e ingenieros de machine learning que trabajan con datos visuales.
- Estudiantes de inteligencia artificial, robótica o ingeniería que necesitan dominar el procesamiento de imágenes.
- Profesionales de sectores como vigilancia, automoción, medicina o industria que requieren soluciones de análisis visual automatizado.