OpenCV es una biblioteca de programación para desarrollar programas que hagan visión por computadora, es decir, que un programa pueda de alguna manera “ver” el entorno y a partir de ahí, tomar decisiones. La biblioteca tiene módulos para procesamiento de imágenes como filtrado, conversión de color, entre muchas otras funciones. El módulo de video, por ejemplo, incluye técnicas avanzadas para seguir objetos en particular o quitar el fondo. Se pueden tomar los módulos entonces y conectarlos con el código que uno esté escribiendo para así tener una nueva aplicación, funcional en muchísimo menos tiempo.
La última versión trabaja en C++11, compilador requerido para poder usar el poder de OpenCV 4.0. Las características principales muestran, para empezar que mucho del API de C de OpenCV 1.x se ha quitado. Esto tiene sentido pues C++ hace el procesamiento de imágenes algo mucho más sencillo. Sin embargo, C se usa mucho en dispositivos pequeños para tener el mejor desempeño, por lo que ahora la interfaz C++ puede usarse desde Python.
Se ha hecho mucho trabajo mejorando el guardar datos en diversos formatos, XML, YAML y JSON, todos en el módulo nuclear (core module) y el API de C se ha quitado. El módulo de aprendizaje profundo se ha actualizado con el Deep Learning Deployment Toolkit de OpenVINO de Intel y ahora tiene a Vulkan como un módulo de “backend” de forma experimental.
Por otra parte, aunque Kinect ya no está en el mercado, OpenCV todavía soporta el algoritmo llamado Kinect Fusion, el cual se ha optimizado para procesadores (CPU) y tarjetas gráficas (GPU) usando OpenCL. Además, se ha añadido un nuevo detector de QR, el cual desde luego, decodifica dicho código. Así, si una aplicación que use este módulo ve un código QR, puede leerlo y decodificarlo.
Pero tal vez la característica más novedosa es el G-API, un API basado en gráficas que permite poner pipelines en el procesamiento de imágenes. Esto quiere decir que se puede indicar las operaciones sobre las gráficas y entonces el G-API trabajará de manera que maximice la salida. El único problema es que no todos los operadores pueden expresarse como gráficas que los pipelines están restringidos a las opciones estándar de procesamiento de imágenes: filtrado, operaciones binarias y transformaciones geométricas.
En el mundo moderno de cómputo hay dos tipos de software, el propietario -cerrado y muchas veces con un alto costo- y el de código abierto. OpenCV permite a cualquiera trabajar en el fascinante campo de la visión por computadora y esta versión 4.0 sin duda que puede ser de mucha utilidad.