Usar OpenCV con Visual C++ 2008 versión Express

OpenCV es una biblioteca para crear aplicaciones en el campo del procesamiento de imágenes y visión computacional, a continuación pongo los pasos necesarios para poder crear utilizarla con la versión gratuita de VC++ 2008, espero sea útil :).

Descargar Visual C++ y OpenCV

Visual C++ 2008 Express Edition de http://www.microsoft.com/express/vc/
OpenCV de http://www.opencv.org

Instalar

Ejecutar los instaladores, basta con seguir los pasos mostrados por defecto. En el caso de VC++, no es necesario instalar Microsoft SQL.

Creando el programa de prueba

Crear un nuevo proyecto

En Visual C++ -> Win32 Console Application -> Empty project

Agregar directorios de OpenCV

Tools -> Options -> Projects and Solutions -> VC++ Directories

Agregar un nuevo fuente al proyecto

Copiar el siguiente código:


#include
#include
#include

int main() {
// Constantes
const char NOMBRE_VENTANA[] = "Cámara web";
const int CAMARA = 0;

// Imagen capturada de la cámara web
IplImage* frame = 0;

// Elemento de captura
CvCapture* captura = 0;

// Información del dispositivo de captura
int ancho, alto, fps, numFrames;

// Inicializa captura de la primer cámara que encuentre conectada
captura = cvCaptureFromCAM( CAMARA );
if ( !captura ) {
fprintf( stderr, "No se pudo inicializar la captura...\n" );
exit ( 1 );
}

// Una llamada a captura para que las siguientes funciones
// trabajen correctamente
cvQueryFrame( captura );

// Obtiene información del frame de captura
ancho = ( int )cvGetCaptureProperty( captura, CV_CAP_PROP_FRAME_WIDTH );
alto = ( int ) cvGetCaptureProperty( captura, CV_CAP_PROP_FRAME_HEIGHT );
fps = ( int )cvGetCaptureProperty( captura, CV_CAP_PROP_FPS );
numFrames = ( int )cvGetCaptureProperty( captura, CV_CAP_PROP_FRAME_COUNT );

// Mensajes en la ventana de consola
printf( "Prueba de captura de señal de video\n"
"-----------------------------------\n"
"\tDimensiones de captura: %dx%d\n"
"\tFPS: %d\n"
"\tNúmero de frames: %d\n"
"\n\n[ESC] - cerrar programa\n",
ancho, alto, fps, numFrames
);

// Crea la ventana de visualización
cvNamedWindow( NOMBRE_VENTANA );

// Ciclo infinito
while( 1 ) {
// Frame de captura
IplImage* frame = 0;
// Variable para capturar el teclado
int c;

// Obtiene un frame desde el dispositivo de captura
frame = cvQueryFrame( captura );
if ( !frame ) {
fprintf( stderr, "No se pudo obtener frame de captura...\n" );
break;
}

// Muestra el frame capturado en la ventana creada
cvShowImage( NOMBRE_VENTANA, frame );

// Lectura del teclado
c = cvWaitKey( 10 );
// Terminar si se presiona ESC
if ( c == 27 ) {
break;
}
}

// Libera dispositivo de captura
cvReleaseCapture( &captura );

// Cierra las ventanas creadas
cvDestroyWindow( NOMBRE_VENTANA );

return 0;
}

Opciones del enlazador

En la opción Project -> Properties -> Configuration Properties -> Linker -> Input, agregar highgui.lib

Compilar, construir y ejecutar el proyecto

Debiera abrirse una nueva ventana que muestre lo capturado por la primer cámara que esté conectada a la computadora, si es así, ¡enhorabuena, ahora adelante con tus proyectos! :).

Leave a Reply