¿Qué es OpenCV y para qué sirve?
\n\nOpenCV (Open Source Computer Vision Library) es una biblioteca multiplataforma de código abierto diseñada para tareas de visión por computadora y aprendizaje automático. Proporciona más de 2500 algoritmos optimizados que cubren prácticamente todas las áreas de la visión por computadora: desde el procesamiento simple de imágenes (filtrado, transformaciones geométricas) hasta tareas complejas (reconocimiento facial, seguimiento de objetos, reconstrucción 3D, análisis de video).
\n\nLa biblioteca está escrita en C++ y C, lo que garantiza un alto rendimiento, y tiene interfaces para Python, Java, MATLAB y otros lenguajes. En esta guía nos centraremos en el uso de OpenCV desde C++: es la opción óptima para sistemas de producción donde la velocidad y la gestión eficiente de la memoria son críticas.
\n\n¿Para qué sirve OpenCV?
\n- \n
- Procesamiento de imágenes: cambio de tamaño, rotación, filtrado, mejora de contraste, corrección de color. \n
- Análisis de video: lectura/escritura de video, detección de movimiento, seguimiento de objetos. \n
- Reconocimiento de objetos: rostros, automóviles, texto (OCR), gestos. \n
- Calibración de cámaras: corrección de distorsiones, visión estéreo. \n
- Aprendizaje automático: clasificadores integrados (SVM, KNN, Decision Trees) e integración con DNN (Deep Neural Networks) para trabajar con modelos de TensorFlow, Caffe, PyTorch. \n
Instalación de OpenCV para C++
\n\nA diferencia de Python, donde un solo comando pip install opencv-python es suficiente, la instalación de OpenCV para C++ requiere compilación o el uso de paquetes binarios precompilados. Veamos los métodos principales.
1. Instalación mediante gestor de paquetes (Linux/macOS)
\nUbuntu/Debian:
\nsudo apt update\nsudo apt install libopencv-dev\nmacOS (Homebrew):
\nbrew install opencv\n\n2. Instalación mediante vcpkg (Windows, Linux, macOS)
\nvcpkg es un gestor de paquetes multiplataforma de Microsoft. Primero instale vcpkg:
\ngit clone https://github.com/Microsoft/vcpkg.git\ncd vcpkg\n./bootstrap-vcpkg.sh # Linux/macOS\n.\\bootstrap-vcpkg.bat # Windows\nLuego instale OpenCV:
\n./vcpkg install opencv4\nDespués de la instalación, enlace la biblioteca en CMake:
\ncmake_minimum_required(VERSION 3.10)\nproject(MyOpenCVProject)\nfind_package(OpenCV REQUIRED)\nadd_executable(main main.cpp)\ntarget_link_libraries(main ${OpenCV_LIBS})\n\n3. Compilación desde el código fuente (nivel avanzado)
\nEste método ofrece el máximo control sobre los módulos incluidos y las optimizaciones:
\ngit clone https://github.com/opencv/opencv.git\ncd opencv\nmkdir build && cd build\ncmake -D CMAKE_BUILD_TYPE=RELEASE \\\n -D CMAKE_INSTALL_PREFIX=/usr/local \\\n -D WITH_TBB=ON \\\n -D WITH_V4L=ON \\\n -D WITH_QT=ON \\\n -D WITH_OPENGL=ON ..\nmake -j$(nproc)\nsudo make install\n\nInicio rápido: cargar y mostrar una imagen
\nVerifiquemos que OpenCV esté instalado correctamente escribiendo un programa simple que cargue una imagen, la convierta a escala de grises y la muestre.
\n\n#include <opencv2/opencv.hpp>\n#include <iostream>\n\nint main() {\n // Cargamos la imagen\n cv::Mat img = cv::imread("example.jpg");\n if (img.empty()) {\n std::cerr << "¡No se pudo cargar la imagen!" << std::endl;\n return -1;\n }\n\n // Convertimos a escala de grises\n cv::Mat gray;\n cv::cvtColor(img, gray, cv::COLOR_BGR2GRAY);\n\n // Mostramos ambas imágenes\n cv::imshow("Original", img);\n cv::imshow("Gris", gray);\n\n // Esperamos la pulsación de una tecla\n cv::waitKey(0);\n cv::destroyAllWindows();\n\n return 0;\n}
También en la biblioteca
Colas de tareas para C++: implementación y uso
Registro en Go: Resumen de la biblioteca estándar log y alternativas
Envío de correo electrónico en JavaScript (Node.js): nodemailer, sendgrid, mailgun
Pillow: procesamiento de imágenes en Python
Validación de datos en PHP: guía completa con ejemplos de código
Recommendations