domingo, 27 de enero de 2013

OpenCV-2.3.1 en Processing-1.5.1




Instalar OpenCv en Processing y en otras plataformas es un poco latoso, al menos para gente con poca experiencia en programación.

Este resumen busca primero ser una anotación pra no olvidar y al tiempo es la memoria abierta para los otros.

Condiciones del sistema

Windows7 a 64 bits
Processing 1.5.1
OpenCv-2.3.1 precompilado para windows 

Una reseña, OpenCv es una biblioteca abierta de visión computacional, esto significa que los algoritmos que se implementaron en esta biblioteca, sirven para que el ordenador pueda reconocer ciertas cosas, esto es a grosos modo ya que también hay algoritmos que sirven para modificar las imágenes de tal forma que este procesos de reconocimiento de elementos primitivos como lineas, diagonales, esquinas y puntos etc. sea posible por el ordenador, lo mismo aplica para imágenes de video, que si lo recordamos están compuestas en realidad por una secuencia de imágenes fijas, entonces lo que hace el proceso de visión es que aplica sus algoritmos a cada una de las imágenes al tiempo que las va adquiriendo.

OpenCV esta hecha para programarse con C o C++ para usarla con Processing es necesario usar una biblioteca que nos deja usarla esta es JavaCVPro en esta caso la versión 5.

Los pasos a seguir son los siguientes:

1.- Lo primero es descargar y descomprimir la versión 1.5.1 de processing  http://processing.org/download/ 

2.- Despues descargar la version 2.3.1 de OpenCV e instalarla directamente en C: o el nombre que tenga nuestra unidad pero en la raíz del sistema.

3.- Para poder usar opencv hay que descargar algunas otras bibliotecas (opencvpro y gsvideo y nyar4psg). Por partes primero GSVideo que substituirá a la bibliotec nativa de video de processing. Instalar GSVideo http://gsvideo.sourceforge.net/ 

Nt. Si se pretende usar como un servidor Kinect y OpenCV al parecer lo mejor es instalar la version para 32 bits de SimpleOpenNI, por que para que esta funcione con la de 64 hay que bajar la ultima version de JDK y substituirla por el modulo de Java de Pricessing, (C:processing\java) y si se hace esto esto ya no funcionan las bibliotecas de video.

Ya que es necesaria para algunas de las funciones de JavaCVPro

Nt2.  En algunos de los sitios mencionan que también es importante instalar JavaCv y Javacpp, lo que a mi me paso es que estas bibliotecas estropeaban todo, las he retirado y siguen corriendo los ejemplos de processing ó mejor dicho ahora si corren los ejemplos.

5.- Después de instalar todo esto hay que instalar JavaCVPro 5 http://www.mon-club-elec.fr/mes_downloads/javacvPro-0.5.zip estas se pueden instalar en C:processing/modes/java/libraries ó en las libraries de terceros que son las que uno pone en la carpeta libraries donde sea que este ubicada nuestra carpeta de sketches.  La carpeta donde van nuestros sketches se elije desde las porpiedades de processing.

Al parecer es mejor en esta ultima carpeta ya que si cambiamos la versión de processing no perderíamos nuestras librerías ni habría que estarlas rescatando.

6.- Una vez instalado todo lo anterior viene la parte chinguanguenchona (la mas delicada), hay que modificar las variables del entorno de Windows.

Para hacer esto hay que dar clic derecho sobre el icono de computer y en el menú contextual ir a propiedades, después ir a configuración avanzada del sistema y después a variables del entorno.

Una vez allí hay que modificar las variables:

INCLUDE

%OPENCV%\build\include

LIB

%OPENCV%\build\x86\vc10\lib;


OPENCV

C:\OpenCV-2.3.1\build\x86\vc10


CLASSPATH


C:\Program Files\OpenNI\Bin64\org.OpenNI.jar;C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip; C:\OpenCV-2.3.1\build\x86\vc10\bin\opencv_core_231.dll; C:\OpenCV-2.3.1\build\x86\vc10\bin\opencv_highgui231.dll; C:\OpenCV-2.3.1\build\x86\vc10\bin\opencv_contrib231.dll; C:\OpenCV-2.3.1\build\x86\vc10\bin\opencv_ffmpeg.dll; 

PATH

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\PROGRA~2\PICC;C:\PROGRA~2\PICC;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLShared\;C:\Program Files\OpenNI\Bin64;C:\Program Files\PrimeSense\NITE\bin64;C:\Program Files (x86)\QuickTime\QTSystem\;C:\OpenCV-2.3.1\build\x86\vc10\bin\;C:\OpenCV-2.3.2\build\common\tbb\ia32\vc10\

QTJava

C:\Program Files (x86)\QuickTime\QTSystem\QTJava.zip


En Azul están marcadas las esenciales para OpenCv, obviamente cada cual tiene que modificar las rutas para que coincidan con los directorios que manejan en su PC.

Nt3. No usar los programas que andan en los sitios que nos ayudan a instalar "OpenCV" para modificar el classpath y el path del entorno de windows, es mas latoso hacerlo a mano pero es mas seguro.

//////////////////////////////

Una vez realizado esto, reiniciar la computadora, y abrir un ejemplo de JavaCvPro en processing y correrlo.

Esperamos que todo funcione, cruzas los deditos, sostenemos el aire y después gritamos¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

Las referencias a las que recurrí para ir resolviendo este problema son:

Nt4. Las referencias están puestas en orden de importancia, cualquier duda prácticamente la referencia del mon-club-elec es perfecta solo agregamos las partes del path de las variables del entorno que se encuentran en la discusión del foro de mas adelante.

May the Force be with you¡¡¡¡¡¡¡¡¡ you will need. He :P













Referencias para entender el path, classpath y demás de windows que hay que modificar necesariamente para usar el opencv: 

No hay comentarios:

Publicar un comentario