Open Source Computer Vision (OpenCV) es una biblioteca de programación informática de código abierto desarrollada para admitir aplicaciones que utilizan visión artificial. Proporciona cientos de funciones para la captura, análisis y manipulación de datos visuales y puede eliminar algunos de los problemas que enfrentan los programadores al desarrollar aplicaciones que dependen de la visión por computadora. Algunas partes de la biblioteca también proporcionan funciones de interfaz de usuario y reconocimiento de patrones. OpenCV se ha empleado en aplicaciones prácticas y creativas, incluidos vehículos autónomos y nuevas formas de arte digital.
Las bibliotecas de programación proporcionan funciones comunes o capacidades complejas que los desarrolladores pueden utilizar en sus programas. La biblioteca OpenCV contiene cientos de funciones que apoyan la captura, análisis y manipulación de información visual alimentada a una computadora por cámaras web, archivos de video u otros tipos de dispositivos. Se pueden usar funciones simples para dibujar una línea u otra forma en una pantalla, mientras que las partes más avanzadas de la biblioteca contienen algoritmos para detectar caras, rastrear movimiento y analizar formas. Muchos de los algoritmos de esta biblioteca están relacionados con usos específicos de la visión por computadora, incluida la inspección de productos, la obtención de imágenes médicas, la robótica, el reconocimiento facial y de gestos y la interacción persona-computadora (HCI). Como biblioteca de programación de código abierto, OpenCV se puede utilizar con muy pocas restricciones en proyectos comerciales y de aficionados.
Con OpenCV, un desarrollador puede eliminar parte del trabajo complejo y tedioso que implica hacer que la visión por computadora funcione de manera confiable y enfocarse en construir la aplicación. En lugar de crear algoritmos para el reconocimiento facial y similares, un programador puede agregar solo unas pocas líneas de código para que un programa acceda a la función de biblioteca adecuada. También significa que un programador no necesita dominar todos los aspectos de la visión por computadora para crear un programa que lo utilice.
Además de la funcionalidad principal de procesamiento de imágenes y video, OpenCV contiene módulos secundarios destinados a admitir otras áreas de una aplicación. Uno de estos módulos incluye algoritmos de aprendizaje automático que pueden analizar y predecir patrones visuales. El módulo HighGUI proporciona elementos de interfaz de usuario, así como funciones para almacenar y acceder a archivos de imagen y video.
La biblioteca OpenCV se puede encontrar en el corazón de algunos proyectos ambiciosos. Junto con una variedad de sensores, hardware de computadora y software personalizado, impulsaba un vehículo utilitario deportivo muy modificado que navegaba por un circuito de carreras en el desierto de 132 millas (212 km) sin intervención humana. Sin embargo, no todos los proyectos que dependen de los recursos de la biblioteca son tan prácticos. Algunos miembros del movimiento de codificación creativa, una confederación flexible de personas que ven la programación como una forma de expresión, han utilizado la biblioteca para crear nuevas formas de arte digital. Otros han pirateado dispositivos existentes que contienen cámaras y han abierto nuevas posibilidades para juegos, computación interactiva e incluso telepresencia.