Usar OpenCV con VC++ 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 :).

1. Descargar Visual C++ y OpenCV

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

2. Instalar

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

3. Creando el programa de prueba

a. Crear un nuevo proyecto

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

b. Agregar directorios de OpenCV

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

c. Agregar un nuevo fuente al proyecto

Copiar el siguiente código:

#include <cv.h>
#include <highgui.h>
#include <cstdio>
 
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;
}

d. Opciones del enlazador

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

e. 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! :).

3 comentarios en “Usar OpenCV con VC++ 2008 versión Express”

  1. That libraries should be included in Option B. as in the picture is not enough to look good. thank you very much

  2. Directories for include files:
    C:\Program Files\OpenCV\otherlibs\cvcam\include
    C:\Program Files\OpenCV\otherlibs\cvcam\highgui
    C:\Program Files\OpenCV\cxcore\include
    C:\Program Files\OpenCV\cvaux\include
    C:\Program Files\OpenCV\cv\include

    Directories for library files:
    C:\Program Files\OpenCV\lib

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *