Antes de poder empezar con el mundo de la visión con OpenCV es necesario realizar un par de configuraciones en el IDE de tu preferencia, en esta entrada describiré los pasos que hay que seguir para realizar la configuración de OpenCV 2.4.0 sobre "Visual Studio 2010 professional edition", utilizare para este propósito un OS Windows 7 de 64 bits. A pesar de que el OS es de 64 bits, en el ejemplo emplearé librerías de 32 bits las cuales pueden ser usadas sin problemas en sistemas de 64 bits.
Paso 1. Descargar la ultima versión de OpenCV
Para realizar este paso es necesario entrar a la página de repositorios de código de OpenCV, la sección de descargas para Windows es la que nos interesa, la puedes encontrar en el siguente Link: http://sourceforge.net/projects/opencvlibrary/files/opencv-win/
Como puedes observar tenemos disponibles todas las versiones publicadas hasta la fecha desde la 1.0 hasta la mas reciente. Hacer clic en la versión 2.4.0, descargar la que tiene por nombre "OpenCV-2.4.0.exe".
Una vez descargado el ejecutable, realizar la instalación la cual solo descomprimirá los archivos fuente de OpenCv.
Como sugerencia, colocar la carpeta en el directorio Raíz y renombrarlo como "OpenCV2.4.0".
Paso 2. Configuración de Sistema Operativo
Agregar al la variable de entorno PATH del sistema operativo las rutas de los binarios de OpenCV, sugiero para este caso utilizar el software "Path Editor" el cual es gratuito y dispone de una interfaz gráfica que facilita la administración de la variable PATH.
Los directorios que deberán ser agregados al PATH son:
- C:\OpenCV2.4.0\opencv\build\x86\vc10\bin
- C:\OpenCV2.4.0\opencv\build\common\tbb\ia32\vc10
Consideraciones Importantes para le directorio bin:
- Usar x86 cuando se crearán proyectos para arquitecturas de 32 bits.
- Utiliza vc9 para Vs2008
- Utilziar vc10 para Vs2010
- Usar x64 cuando se crearán proyectos para arquitecturas de 64 bits.
- Utiliza vc9 para Vs2008
- Utilziar vc10 para Vs2010
Consideraciones Importantes para le directorio tbb:
- Usar ia32 cuando se crearán proyectos para arquitecturas de 32 bits.
- Utiliza vc9 para Vs2008
- Utilziar vc10 para Vs2010
- Usar intel64 cuando se crearán proyectos para arquitecturas de 64 bits.
- Utiliza vc9 para Vs2008
- Utilziar vc10 para Vs2010.
Paso 3. Crear el proyecto
Una vez que se han realizado las configuraciones correspondientes, el siguiente paso será crear un proyecto de VS2010.
- Hacer clic en "file->New->Project".
- Seleccionar como lenguaje "C++"
- Utilizar la plantilla "Win32 Console Application"
- Seleccionar en la parte inferior la localización de donde se situará el proyecto "Location"
- Establecer el nombre del proyecto en "Name".
- En la ventana de bienvenida hacer clic en "Next".
- Seleccionar las opciones "Console Application" y "Empty Project" y hacer clic en "finish".
Paso 4. Configuración al proyecto
Hacer clic secundario en el nombre del proyecto (No de la solución), en el menú contextual seleccionar "properties", en la ventana seleccionar de lado izquierdo "Configuration Properties->VC++Directories", en esta sección incluiremos los directorios necesarios para poder trabajar con OpenCv, dichos directorios son:
- C:\OpenCV2.4.0\opencv\build\include este estará incluido en la sección "Include Directories"
- C:\OpenCV2.4.0\opencv\build\x86\vc10\lib este estará incluido en la sección "Library Directories"
En esta parte es muy importante tener en cuenta las siguiente consideraciones:
Dentro del directorio de OpenCV encontramos los siguientes subdirectorios:
- 3rdparty
- android
- apps
- build
- cmake
- data
- doc
- include
- ios
- modules
- samples
Con respecto a "lib" debemos tener en cuenta las siguientes consideraciones:
- Usar x86 cuando se crearán proyectos para arquitecturas de 32 bits.
- Utiliza vc9 para Vs2008
- Utilziar vc10 para Vs2010
- Usar x64 cuando se crearán proyectos para arquitecturas de 64 bits.
- Utiliza vc9 para Vs2008
- Utilziar vc10 para Vs2010
Paso 5. Crear código de ejemplo.
Hacer clic secundario sobre la carpeta "Source Files" del "Solution Explorer", y agregar un archivo del tipo "cpp" llamado "main_helloFrame".
Agregar el siguiente código:
//Main header
#include "main_hog.h"
//Main Programm
void main()
{
Mat image = imread("C:/Users/RivalcobaDev/Pictures/pedestrian/pixelHand.jpg");
namedWindow("Output");
imshow("Output",image);
cout << "End of porcessing!!" << endl;
waitKey(0);
}
Tener cuidado en la línea que utiliza la función "imread", escribir una dirección válida de una imagen en tu CPU, observe que las diagonales son en sentido contrario a las que usa el sistema operativo normalmente para declarar rutas de archivos, esta es una regla que se deberá seguir siempre que se desee declarar rutas de archivos.
Note que en la parte superior hay un "header", el cual definiremos a continuación.
Hacer clic secundario sobre la carpeta "Header Files" del "Solution Explorer", seleccionar la opción "Add->New item" y agregar un archivo de tipo ".h" con el nombre "main_helloFrame".
Agregar los enlaces (links) a las librerias de OpenCv:
#ifndef MAIN_HOG
#define MAIN_HOG
//OpenCV Linkers
#pragma comment(lib, "opencv_core240d.lib")
#pragma comment(lib, "opencv_highgui240d.lib")
#pragma comment(lib, "opencv_imgproc240d.lib")
#pragma comment(lib, "opencv_features2d240d.lib")
#pragma comment(lib, "opencv_calib3d240d.lib")
#pragma comment(lib, "opencv_objdetect240d.lib")
#pragma comment(lib, "opencv_gpu240d.lib")
#pragma comment(lib, "opencv_video240d.lib")
//OpenCv sources codes
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\core\core.hpp>
//Cpp headers
#include<iostream>
//name Spaces
using namespace std;
using namespace cv;
#endif
En primer lugar utilizamos unas directivas de compilador que nos permitirán definir un bloque de código que será creado con la condición de no estar definido anteriormente, en C++ siempre que se estén creando "headers" es muy recomendable englobar todo el código del "Header" mediante esta directiva.
Seguido de eso, encontramos otras directivas del compilador llamadas "Pragma", estas son indispensables para linkear el proyecto con los archivos ".lib" de openCv, sin los cuales sería imposible compilar el proyecto.
Posteriormente tenemos los "inlcudes", en los cuales incluimos las definiciones de los módulos de OpenCV que utilizaremos en el proyecto, los mas importantes son "core.hpp" y "highgui.hpp".
Terminamos con los espacios de nombres donde estan origanizadas las funciones estándar de C++ (std) y OpenCv (cv).
El "Solution Explorer" debiera verse así:
Compilar y Ejecutar con la función F5 y si todo se ha realizado correctamente el programa lee la imagen del directorio y la muestra en una ventana. Para cerrar el programa presionar cualquier tecla.
No hay comentarios:
Publicar un comentario