07/02/2017
Este tutorial detalla cómo configurar el entorno de desarrollo para usar OpenCV con Java en Eclipse bajo Linux. Se explicará cómo agregar la biblioteca OpenCV como una librería de usuario en Eclipse, permitiendo su reutilización en múltiples proyectos. Aprenderemos a gestionar las dependencias, incluyendo la problemática con la biblioteca Intel MKL en algunas distribuciones Linux.

Configurando Eclipse
Primero, descargue una versión reciente de OpenCV desde la página oficial y extráigala en una ubicación sencilla. Este tutorial utilizará una versión genérica, pero los pasos son similares para otras versiones. Necesitará el archivo opencv-.jar(donde representa el número de versión) y las bibliotecas nativas correspondientes (generalmente dentro de una carpeta x64o x86, dependiendo de su arquitectura). Se recomienda usar la última versión estable disponible al momento de la lectura de este tutorial.
Para configurar OpenCV como librería de usuario en Eclipse, siga estos pasos:
- Abra Eclipse y seleccione Ventana > Preferencias .
- Navegue hasta Java > Ruta de compilación > Librerías de usuario y haga clic en Nuevo...
- Asigne un nombre a su nueva librería (ej.
OpenCV-0). - Seleccione la librería recién creada y haga clic en Agregar JARs externos...
- Busque y seleccione el archivo
opencv-.jar. - Expanda
opencv-.jar, seleccione Ubicación de la biblioteca nativa y presione Editar... - Seleccione Carpeta externa... y navegue hasta la carpeta con las bibliotecas nativas (
x64ox86dentro de la carpetabuild/libde su instalación de OpenCV).
Su configuración de la librería de usuario debería verse similar a la siguiente (las rutas dependerán de su instalación):
| Elemento | Ruta |
|---|---|
| JAR | /ruta/a/su/instalacion/opencv/build/java/opencv-.jar |
| Biblioteca nativa | /ruta/a/su/instalacion/opencv/build/lib/ |
Probando la configuración en un nuevo proyecto Java
Cree un nuevo proyecto Java en Eclipse. En la sección de configuración de Java, en la pestaña Librerías, seleccione Agregar librería... y elija la librería OpenCV que acaba de crear. Haga clic en Finalizar.

A continuación se muestra un ejemplo de código para probar la instalación:

import org.opencv.core.Core;import org.opencv.core.CvType;import org.opencv.core.Mat;public class Hello { public static void main(String[] args) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); Mat mat = Mat.eye(3, 3, CvType.CV_8UC1); System.out.println("mat = " + mat.dump()); }}Al ejecutar este código, debería ver una matriz identidad 3x3 como salida. Si no obtiene la salida correcta, revise las rutas de las librerías y la arquitectura (32 o 64 bits).
Gestionando la dependencia Intel MKL (Linux)
Si OpenCV se compiló con la biblioteca Intel Math Kernel Library (MKL), puede encontrar errores al ejecutar código Java que utiliza funciones de OpenCV que dependen de MKL, especialmente en sistemas Linux. Un error común es:
Intel MKL FATAL ERROR: Cannot load libmkl_avxso or libmkl_def.so.
Para solucionar esto, precargue la biblioteca Intel MKL. Puede hacerlo añadiendo la siguiente línea a su archivo ~/.bashrc:

export LD_PRELOAD=/opt/intel/mkl/lib/intel64/libmkl_core.so:/opt/intel/mkl/lib/intel64/libmkl_sequential.so(Ajuste la ruta según su instalación de MKL). Después de agregar la línea, ejecute source ~/.bashrcpara que los cambios surtan efecto. Si ya tiene una variable LD_PRELOADdefinida, añada las rutas de las librerías MKL a la existente, separándolas con dos puntos.

Consultas Habituales
- ¿Qué versión de OpenCV debo usar? Recomendamos la última versión estable.
- ¿Qué pasa si obtengo errores de enlace? Verifique que las rutas de las librerías en la configuración de Eclipse sean correctas y que coincidan con la arquitectura de su sistema (32 o 64 bits).
- ¿Cómo soluciono problemas con MKL? Precargue las bibliotecas MKL como se describe en la sección anterior.
- ¿Puedo usar otras IDEs? Sí, los pasos generales para agregar bibliotecas externas son similares en otras IDEs como NetBeans o IntelliJ IDEA.
Tabla Comparativa de Sistemas Operativos
| Sistema Operativo | Librerías Nativas | Variable de entorno (MKL) |
|---|---|---|
| Linux (64 bits) | /ruta/a/su/instalacion/opencv/build/lib/x64/ | LD_PRELOAD |
| Linux (32 bits) | /ruta/a/su/instalacion/opencv/build/lib/x86/ | LD_PRELOAD |
| Windows (64 bits) | /ruta/a/su/instalacion/opencv/build/java/x64/ | No requerido |
| Windows (32 bits) | /ruta/a/su/instalacion/opencv/build/java/x86/ | No requerido |
Recuerde reemplazar /ruta/a/su/instalacion/opencvcon la ruta correcta a su instalación de OpenCV. Esta información es crucial para la correcta configuración de OpenCV en su entorno de desarrollo. Si tiene problemas adicionales, consulte la documentación oficial de OpenCV y busque soluciones en foros de programación.
Si quieres conocer otros artículos parecidos a Agregar opencv como librería en eclipse (linux) puedes visitar la categoría Libros y Librerías.
