opencv 3.0.0 java imread_0 undefined

时间:2015-03-02 12:42:59

标签: scala opencv unsatisfiedlinkerror

我正在尝试使用scala开发一个使用java opencv 3.0.0-beta的应用程序。

我收到运行时错误: java.lang.UnsatisfiedLinkError:java.lang.UnsatisfiedLinkError:org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava / lang / 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 run"它按预期执行。如果从上面删除了相应的行,则代码在REPL中失败。

我怀疑这个问题与原始问题有关,但没有证据。

如果我在两种情况下查看JVM的内存映射,我都会加载预期的lib。

如果检查代码,我找不到org.opencv.imgcodecs.Imgcodecs.imread_1

的定义

我很遗憾在诊断这个问题时要去哪里。

有没有人遇到过这个问题?

由于

1 个答案:

答案 0 :(得分: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文件夹应该包含与jar文件一起生成的文件

如果你需要的话,我在这个git仓库中为java 7和8提供了java绑定2.4.9,2.4.10和3.0.0

git@gitlab.com:opencv/java_lib.git