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. Directories for include files:
    C:Program FilesOpenCVotherlibscvcaminclude
    C:Program FilesOpenCVotherlibscvcamhighgui
    C:Program FilesOpenCVcxcoreinclude
    C:Program FilesOpenCVcvauxinclude
    C:Program FilesOpenCVcvinclude

    Directories for library files:
    C:Program FilesOpenCVlib

Leave a Reply