OpenCV: Librería de Visión por Computador

Logo de OpenCV


¿Qué es OpenCV?

OpenCV es una librería de visión por computador de código abierto, disponible en http://sourceforge.net/projects/opencvlibrary/
La librería está escrita en los lenguajes C y C++ y es compatible con Linux, Windows y Mac OS X. Cuenta con un desarrollo activo en interfaces para Python, Ruby, Matlab y otros lenguajes.
OpenCV ha sido diseñado para ser eficiente en cuanto a gasto de recursos computacionales y con un enfoque hacia las aplicaciones de tiempo real.
OpenCV está escrito y optimizado en C y puede tomar ventaja de los procesadores con múltiples núcleos.
Si necesitas mayor optimización en arquitecturas Intel, puedes adquirir las librerias integradas IPP de Intel (https://software.intel.com/es-es/intel-ipp)

Uno de los objetivos de OpenCV es proveer una infraestructura de visión por computador fácil de utilizar que ayuda a los programadores a desarrollar aplicaciones ‘sotisficadas’ de CV (Computer Vision) rápidamente.
La librería OpenCV contiene aproximadamente 500 funciones que abarcan muchas áreas de CV, incluyendo inspección de productos de fábricas, escaneo médico, seguridad, interfaces de usuario, calibración de cámaras, robótica…etc, porque la visión por computador y el aprendizaje automática van de la mano.
OpenCV también tiene una completa librería de uso general de aprendizaje automático (MLL o Machine Learning Library), la cual es muy útil para cualquier problema de aprendizaje automático. Esta sublibrería está especializada en el reconocimiento estadístico de patrones y clustering.

 

Funciones de OpenCVFigura 1: Funciones de OpenCV

 


 

Módulos de OpenCV:

OpenCV tiene una estructura modular. Los módulos principales de OpenCV los listo debajo.

– core:
Este es el módulo básico de OpenCV. Incluye las estructuras de datos básicas y las funciones básicas de procesamiento de imágenes. Este módulo también es usado por otros módulos como highgui.

– highhui:
Este módulo provee interfaz de usuario, códecs de imagen y vídeo y capacidad para capturar imágenes y vídeo, además de otras capacidades como la de capturar eventos del ratón…etc.
Si necesitas capacidades de UI (User Interface) más avanzadas debes usar frameworks tales como Qt, WinForms…etc.

– imgproc:
Este módulo incluye algoritmos básicos de procesado de imágenes, incluyendo filtrado de imágenes, transformado de imágenes…etc.

– video:
Este módulo de análisis de vídeo incluye algoritmos de seguimiento de objetos, entre otros…

– objdetect:
Incluye algoritmos de detección y reconocimiento de objetos para objetos estándar.

 

Categorías de OpenCVFigura 2: Categorías de OpenCV

 


A continuación un código para capturar imágenes de una cámara, utilizando la librería OpenCV.

#include “cv.h”
#include “highgui.h”

int main(int argc,char** argv)
{
IplImage *frame;

// Crear dispositivo de captura
// El 0 quiere decir que usarás el dispositivo con índice 0
CvCapture *capture = cvCaptureFromCAM(0);

//Se necesita highgui.h
cvNamedWindow(“capture”,CV_WINDOW_AUTOSIZE);
while(1) //Bucle infinito
{
//Consulta para el marco de la cámara
frame = cvQueryFrame(capture);

//Mostrar la imagen capturada
cvShowImage(“capture”,frame);

char ch = cvWaitKey(25); //Esperar 25 ms para presionar la tecla
if(ch==27) break; //Tecla Escape pulsada
}

//Liberar la memoria ocupada por las imágenes
cvReleaseImage(&frame);
cvDestroyWindow(“capture”);
return 0;
}

2 respuestas a “OpenCV: Librería de Visión por Computador”

  1. Andrés Cidoncha Carballo

    Esta libreria la usamos durante el curso con Jesús en Sistemas Operativos Avanzados, y la verdad es que es una herramienta muy potente. Como apunte para quien le interese y desarrolle sobre Qt, nosotros usamos para la conversión entre formato de QImage y cv:math un proyecto llamado QtOpenCV que nos facilita la tarea (https://github.com/dbzhang800/QtOpenCV).

    Responder
  2. edgar

    muy interesante la publicacion me ayudo de gran manera…….alguien podria darme referencias de otras librerias,api,framework similares a openCV saludos

    Responder

Dejar un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.