java.lang.UnsatisfiedLinkError:org.opencv.imgcodecs.Imgcodecs.imread_0(Ljava / lang / String; I)J

时间:2016-05-24 12:11:19

标签: java opencv

我正在尝试使用opencv在Java中执行某些操作。我正在使用Netbeans IDE。

当我尝试使用构造函数声明一个新矩阵时会出现问题,然后我在控制台中收到以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_0(Ljava/lang/String;I)J
at org.opencv.imgcodecs.Imgcodecs.imread_0(Native Method)
at org.opencv.imgcodecs.Imgcodecs.imread(Imgcodecs.java:93)
at imagecomparator.Mini.compareFeature(Mini.java:62)
at imagecomparator.Mini.main(Mini.java:37)

Java结果:1

我的代码如下:

public static int compareFeature(String filename1, String filename2) throws IOException {
    int retVal = 0;
    long startTime = System.currentTimeMillis();
    System.out.println(System.getProperty("java.library.path")); 
    System.load( "C:\\Windows\\System32\\opencv_java310.dll" );
  // Load images to compare

    System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 
    Mat img1  = Imgcodecs.imread(filename1, Imgcodecs.CV_LOAD_IMAGE_COLOR);
    Mat img2  = Imgcodecs.imread(filename2, Imgcodecs.CV_LOAD_IMAGE_COLOR);

 }

我有什么错误导致此错误吗?

3 个答案:

答案 0 :(得分:3)

我遇到了同样的错误,因为我没有先加载opencv .dll文件。 在调用代码之前,请检查System.load("opencv dll directory")是否已执行。

答案 1 :(得分:0)

您只需将环境变量设置为:

C:\opencv\build\java\x64

答案 2 :(得分:0)

确保您正在加载正确的opencv本机库版本(对应于Core.NATIVE_LIBRARY_NAME)。