OpenCV: Visión por Computadora – Guía Completa en Python

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es OpenCV y para qué sirve?

OpenCV (Open Source Computer Vision Library) es una potente biblioteca de código abierto para visión por computadora y procesamiento de imágenes, que se ha convertido en el estándar de la industria del machine vision. La biblioteca ofrece más de 2500 algoritmos optimizados para resolver tareas de visión artificial, desde el procesamiento básico de imágenes hasta complejos sistemas de reconocimiento y análisis.

Historia y evolución de OpenCV

La biblioteca fue creada en 1999 por investigadores de Intel Research bajo la dirección de Gary Bradski. Inicialmente, el proyecto se concibió como una herramienta para acelerar la investigación en visión por computadora y crear herramientas comunes para desarrolladores. En 2000 se lanzó la primera versión pública, y en 2008 el proyecto se volvió completamente de código abierto.

Hitos clave en su desarrollo:

  • 1999-2005: Desarrollo en Intel Research, enfoque en rendimiento
  • 2006-2012: Transición a un modelo de desarrollo abierto, creación de OpenCV 2.x
  • 2013-2015: Lanzamiento de OpenCV 3.x con cambios arquitectónicos importantes
  • 2018-presente: OpenCV 4.x con soporte mejorado para deep learning

Hoy en día, OpenCV es mantenido por la Fundación OpenCV y una activa comunidad de desarrolladores en todo el mundo.

Arquitectura y módulos de OpenCV

OpenCV está construida bajo un principio modular, lo que garantiza flexibilidad y la posibilidad de usar solo los componentes necesarios:

Módulos principales:

Core - estructuras de datos y algoritmos básicos Imgproc - procesamiento de imágenes y filtrado Imgcodecs - codificación y decodificación de imágenes Videoio - trabajo con video y cámaras Highgui - interfaz de usuario Features2d - detectores y descriptores de características Calib3d - calibración de cámara y reconstrucción 3D Objdetect - detección de objetos DNN - módulo de deep learning ML - algoritmos clásicos de machine learning

Requisitos del sistema y plataformas compatibles

OpenCV es compatible con una amplia gama de sistemas operativos y arquitecturas:

Sistemas operativos:

  • Windows (7, 8, 10, 11)
  • Linux (Ubuntu, CentOS, Debian y otras distribuciones)
  • macOS
  • Android
  • iOS

Lenguajes de programación:

  • C++
  • Python
  • Java
  • C#
  • JavaScript (OpenCV.js)

Aceleradores de hardware:

  • CUDA (GPU NVIDIA)
  • OpenCL
  • Intel TBB
  • Intel IPP

Instalación y configuración de OpenCV

Instalación para Python

Instalación básica:

pip install opencv-python

Instalación con módulos adicionales:

pip install opencv-contrib-python

Para trabajar con video puede ser necesario:

pip install opencv-python-headless  # para aplicaciones de servidor

Verificar la instalación

import cv2
print(cv2.__version__)
print(cv2.getBuildInformation())

Configuración del entorno de desarrollo

Para trabajar eficientemente con OpenCV también se recomienda instalar:

pip install numpy matplotlib jupyter

Estructuras de datos principales de OpenCV

Mat - la clase principal para trabajar con imágenes

En OpenCV, las imágenes se representan como arreglos multidimensionales de tipo Mat (en C++) o numpy.ndarray (en Python). Cada píxel puede contener de 1 a 4 canales (escala de grises, RGB, RGBA).

Tipos de datos principales:

  • CV_8U - enteros sin signo de 8 bits (0-255)
  • CV_8S - enteros con signo de 8 bits

Recommendations