0% encontró este documento útil (0 votos)
26 vistas3 páginas

Introducción a OpenCV y sus aplicaciones

OpenCV es una biblioteca de código abierto popular para visión artificial escrita en C/C++. Es multiplataforma, libre de usar y cuenta con conectores para lenguajes como Python y Java. Proporciona funciones para detección de características, reconocimiento facial, seguimiento de objetos y más. Actualmente tiene versiones activas 3, 4 y una línea 2.4 para correcciones.

Cargado por

JOSE ZAMBRANO
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
26 vistas3 páginas

Introducción a OpenCV y sus aplicaciones

OpenCV es una biblioteca de código abierto popular para visión artificial escrita en C/C++. Es multiplataforma, libre de usar y cuenta con conectores para lenguajes como Python y Java. Proporciona funciones para detección de características, reconocimiento facial, seguimiento de objetos y más. Actualmente tiene versiones activas 3, 4 y una línea 2.4 para correcciones.

Cargado por

JOSE ZAMBRANO
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNEFA – MARACAY

1-. ¿Qué es OpenCV?

OpenCV es una biblioteca libre de visión artificial originalmente desarrollada por Intel. OpenCV
significa Open Computer Vision (Visión Artificial Abierta). Desde que apareció su primera versión
alfa en el mes de enero de 1999, se ha utilizado en una gran cantidad de aplicaciones, y hasta 2020
se la sigue mencionando como la biblioteca más popular de visión artificial.1 Detección de
movimiento, reconocimiento de objetos, reconstrucción 3D a partir de imágenes, son sólo algunos
ejemplos de aplicaciones de OpenCV.

Su popularidad se debe a que es:

 Libre, publicada bajo licencia BSD, que permite que sea usada libremente para propósitos
comerciales y de investigación
 Multiplataforma, para los sistemas operativos GNU/Linux, Mac OS X, Windows y Android,
y para diversas arquitecturas de hardware como x86, x64 (PC), ARM (celulares y Raspberry
Pi)
 Documentada y explicada: la organización tiene una preocupación activa de mantener la
documentación de referencia para desarrolladores lo más completa y actualizada posible,
ejemplos de uso de sus funciones y tutoriales accesibles al público no iniciado en visión
artificial, además de difundir y fomentar libros y sitios de formación.

El proyecto pretende proporcionar un entorno de desarrollo fácil de utilizar y altamente eficiente.


Esto se ha logrado realizando su programación en código C y C++ optimizados, aprovechando
además las capacidades que proveen los procesadores multinúcleo. OpenCV puede además utilizar
el sistema de primitivas de rendimiento integradas de Intel, un conjunto de rutinas de bajo nivel
específicas para procesadores Intel (IPP).

2-. Aplicaciones

Las áreas de aplicación de OpenCV incluyen:

 Características 2D y 3D
 Estimación de pose de cámara
 Reconocimiento facial
 Reconocimiento de gestos
 Interacción persona-computadora
 Robótica móvil
 Comprensión de movimientos
 Reconocimiento de objetos
 Segmentación
 Estereoscopía
 Structure from motion (SFM)
 Tracking
 Realidad aumentada

3-. Lenguajes de programación

OpenCV está totalmente desarrollado en C++, orientado a objetos y con alta eficiencia
computacional. Su API es C++ pero incluye conectores para otros lenguajes:

 Python
 Java
 Matlab
 Octave
 Javascript

La documentación y tutoriales se brindan para estos lenguajes, en orden de relevancia:

 C++
 Python
 Java
 Javascript

[Link]

Es el nombre dado a conector de OpenCV para Javascript. Introducido en la versión 3.4 de OpenCV
en diciembre de 2017, fue posible gracias a la nueva tecnología WebAssembly en los navegadores,
anunciada en noviembre de ese año.2

[Link] no está escrito en javascript. Técnicamente, es la compilación del código C++ de OpenCV
en una máquina virtual WebAssembly, que se convierte en código nativo al ejecutarse en un
navegador, lo que lo hace casi tan eficiente como la biblioteca nativa de OpenCV.

El soporte es parcial, sólo la parte principal de OpenCV fue portada a WebAssembly para que se
pueda ejecutar en navegadores y usar con Javascript. Los tutoriales incluyen instrucciones para
compilar cualquier otra parte de OpenCV, de modo que un desarrollador puede acceder a la
biblioteca completa de OpenCV, pero mediante un trabajo arduo que requiere conocimiento
experto, lo que deja fuera a la mayoría de los desarrolladores que quiere explorar el uso de OpenCV
en navegadores.

4-. Multiplataforma

OpenCV ofrece soporte para varios sistemas operativos y varias arquitecturas de hardware, pero
también ofrece el código fuente para que cualquier desarrollador lo compile en cualquier sistemas
operativo y arquitectura particular.

OpenCV brinda instrucciones de instalación y opcionalmente binarios para estos sistemas


operativos
 GNU/Linux
 Windows
 MacOs
 Android
 iOS

OpenCV se utiliza prácticamente en cualquier plataforma con capacidad suficiente, compilando su


código fuente. De este modo se la utiliza en PC, celulares y placas de prototipado como Raspberry
Pi o NVidia Jetson.

Hace uso de la paralelización a través de IPP y TBB.

Hace uso de la arquitectura híbrida cuando está disponible, a través de sus módulos CUDA y OpenCL,
para aprovechar la potencia de procesamiento de las placas gráficas. No se debe confundir, OpenCV
no brinda soporte para desarrolladores de CUDA, sino lo contrario: tiene un módulo escrito en CUDA
para que los desarrolladores de C++ (y otros lenguajes soportados) puedan utilizarlo sin necesidad
de escribir código CUDA.

5-. Historias de Versiones

En 2020 OpenCV cuenta con líneas activas en paralelo, que difieren por su número de versión mayor

Versión 4

 C++ puro
 Desarrollo activo de nuevos módulos
 Versión actual: 4.3.0 (marzo de 2020)

Versión 3

 C++ con compatibilidad hacia atrás


 Versión actual: 3.4.9 (diciembre de 2019)

Versión 2.4.13

 C y C++
 El soporte consiste principalmente en depuración y corrección de errores. No se agregan
activamente algoritmos nuevos.
 Versión actual y final: [Link] (febrero de 2019).

También podría gustarte