我正在尝试使用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);
}
我有什么错误导致此错误吗?
答案 0 :(得分:3)
我遇到了同样的错误,因为我没有先加载opencv .dll文件。
在调用代码之前,请检查System.load("opencv dll directory")
是否已执行。
答案 1 :(得分:0)
您只需将环境变量设置为:
C:\opencv\build\java\x64
答案 2 :(得分:0)
确保您正在加载正确的opencv本机库版本(对应于Core.NATIVE_LIBRARY_NAME)。