我正在尝试使用opencv在Java中对Matrix进行一些操作。我正在使用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);

 }

我做错了什么导致此错误吗?

最佳答案

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

07-24 13:45