簡體   English   中英

Java 8 opencv簡單示例UnsatisfiedLinkError

[英]Java 8 opencv easy example UnsatisfiedLinkError

我想學習opencv,所以我想運行此代碼示例。

我已從intellij Java版本8中嚴格添加的opencv 3.4.2下載了程序包。3.20 mi版本可以正常工作,但需要3.4.2或更高版本。 請幫助,我不能做什么。 這是我的代碼:

public class Main {

    public static void main(String[] args) {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        System.out.println("Welcome to OpenCV " + Core.VERSION);
        Mat m = new Mat(5, 10, CvType.CV_8UC1, new Scalar(0));
        System.out.println("OpenCV Mat: " + m);
        Mat mr1 = m.row(1);
        mr1.setTo(new Scalar(1));
        Mat mc5 = m.col(5);
        mc5.setTo(new Scalar(5));
        System.out.println("OpenCV Mat data:\n" + m.dump());
    }
}
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Work\opencv\opencv\build\java\x64\opencv_java342.dll: Can't find dependent libraries
    at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
    at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430)
    at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487)
    at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2649)
    at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:829)
    at java.base/java.lang.System.loadLibrary(System.java:1867)
    at Main.main(Main.java:9)

您需要使用以下命令加載.dll或.so庫:

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

要么

System.load(PATH_TO_NATIVE_LIB);

接下來,您需要向pom.xml添加依賴項:

<dependency>
    <groupId>org.openpnp</groupId>
    <artifactId>opencv</artifactId>
    <version>3.4.2-1</version>
</dependency>

庫版本和依賴版本必須相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM