2015-03-02 2 views
2

Я пытаюсь разработать приложение с использованием java opencv 3.0.0-beta с использованием scala.opencv 3.0.0 java imread_0 undefined

Я получаю сообщение об ошибке выполнения: java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_1 (Ljava/языки/String;) J

Исследуя причину я создал следующий простое приложение, экспонаты сходное поведение:

import reflect._ 

import org.opencv.core.Core 
import org.opencv.core.Mat 
import org.opencv.core.CvType 
import org.opencv.imgcodecs.Imgcodecs 

object main extends Application { 
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME) 

    val what = "something.png" 
     val mat = Imgcodecs.imread(what) 
     Imgcodecs.imwrite("something_else.png", mat) 
} 

Основное различие заключается в том, что, если работать как «SBT бега» он выполняет, как ожидалось. если соответствующие строки удалены из вышеизложенного, код не выполняется в REPL.

Я подозреваю, что эта проблема связана с исходной проблемой, но не имеет доказательств.

Если я смотрю карту памяти JVM, в обоих случаях у меня есть ожидаемая загрузка libs.

Если код проверен я не нахожу определение org.opencv.imgcodecs.Imgcodecs.imread_1

Я совсем потерял, куда идти дальше в диагностике этого вопроса.

Есть ли кто-нибудь, кто столкнулся с этой проблемой?

Благодаря

+0

Вы пытались: String what = "something.png"; Mat mat = Imgcodecs.imread (что); вместо использования типа «val»? –

+0

Спасибо Ха Dang. нет, я этого не делал. кодирование его в java просто не пришло ко мне. основная часть реального приложения - scala. – armadefuego

ответ

0

я не использовал openCV3.0 все же, как это имеет серьезные изменения и ломает OpenCV код 2.4.x, вы поставлять путь к библиотеке в

sbt run 

добавить

javaOptions in run += "-Djava.library.path=lib/opencv/" 

в файл build.sbt или передать CMD линии

sbt run -Djava.library.path=lib/opencv/ 

папка OpenCV должна иметь свои файлы, получает сгенерированные вместе с файлом баночка

У меня есть Java bindins для 2.4.9, 2.4.10 и 3.0.0 для Java 7 и 8 в этом мерзавец репо, если вы нуждаетесь в них

[email protected]:opencv/java_lib.git 
+0

Спасибо DAR. Это не похоже на мою проблему, поскольку библиотеки присутствуют, когда я смотрю на карту процесса (cat/proc/{pid}/maps) – armadefuego

Смежные вопросы