Si obtiene este error:
Exception in thread "main"
java.lang.UnsatisfiedLinkError: no opencv_java in java.library.path
Probablemente significa que está disparando desde la cadera, la programación por el movimiento browniano, tratando de conseguir OPENCV para trabajar. Como intentar averiguar cómo funciona un avión en vuelo apretando todos los botones con furia. Lo pasarás mal.
¿Qué significa el error:
Eclipse le está diciendo que el archivo jar no puede encontrar bibliotecas que necesita para hacer su trabajo. Entonces, naturalmente, no va a funcionar hasta que los pongas a disposición. Tienes que encontrar un tutorial sobre "cómo construir openCV desde la fuente" en tu plataforma particular: (Windows, Mac, Linux, etc.), (32 bits, 64 bits, etc.).
Básicamente, pasó por alto la configuración de 'Ubicación de la biblioteca nativa', o no los configuró correctamente, por lo que el jar no puede encontrar sus bibliotecas de soporte escritas en C
.
Cómo lo arregle, mil pies vista:
- descargar el código fuente para OpenCV para su sistema operativo.
- Sigue las instrucciones para construir openCV desde la fuente.
- Copie el jar en un directorio lib en su proyecto Java.
- Configure el jar para buscar sus bibliotecas nativas estableciendo la "ubicación de biblioteca nativa" en el directorio
build/lib
debajo de la ruta donde creó openCV desde el código fuente.
- Limpiar compila el proyecto java, y el UnsatisfiedLinkError debería desaparecer.
este blog habla de los pasos anteriores en detalle paso a paso: https://udallascs.wordpress.com/2014/03/30/adding-opencv-and-configuring-to-work-with-eclipse-and-java/
¿Por qué no puede este ser sólo un frasco simple?
Porque la mayor parte de openCV está escrito en el lenguaje de programación C
.Y el archivo jar que está utilizando es solo una ventana hacia ese mundo C. Entonces es una máquina Goldberg de rube. Verá este tipo de cosas por todas partes en el mundo real del trabajo, así que preste atención, usted está recibiendo una educación aquí.
¿Puede agregar algún código donde integre las bibliotecas de OpenCV en Java? Parece que Classloader no puede encontrar la biblioteca. – Fildor
En las configuraciones de ejecución, he agregado el argumento '-Djava.library.path = C: \ opencvFinal'. También en Java Build Path he agregado External Class Folder, que es 'C: \ opencvFinal \ bin', donde se guardan todos los archivos dll de opencv. Y cuando estoy llamando a 'System.loadLibrary (" opencv_java ");' me da una excepción. – andriy
Espera, ¿tienes dlls, solo? Lo que necesitas es un frasco que envuelva esos dlls. O necesita envolverlos usted mismo usando [jni] (http://en.wikipedia.org/wiki/Java_Native_Interface#How_the_JNI_works). – Fildor