什么是正确的本机库路径在eclipse-ubuntu中使用OpenCV

Son*_*han 5 java eclipse opencv3.0 ubuntu-15.04

我在eclipse-ubuntu.i中使用ubuntu 15.04.installed opencv 3.1.0在此链接http://milq.github.io/install-opencv-ubuntu-debian/之后设置opencv的本机库路径时出现问题 并添加eclipse中的新库(OpenCV)并将其设置为jar路径

/home/user/opencv-3.1.0/build/bin/opencv-310.jar
Run Code Online (Sandbox Code Playgroud)

和本机库路径为

/home/user/opencv-3.1.0/build/lib
Run Code Online (Sandbox Code Playgroud)

lib文件夹包含.so.a文件.但是,当我尝试使用Mat对象时,它给出了错误:这是主方法

System.out.println("Welcome to OpenCV hhhh " + Core.VERSION);
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat img=new Mat();
Run Code Online (Sandbox Code Playgroud)

这是我的代码和控制台的截图 在此输入图像描述 它给了我错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_Mat()J
        at org.opencv.core.Mat.n_Mat(Native Method)
        at org.opencv.core.Mat.<init>(Mat.java:24)
Run Code Online (Sandbox Code Playgroud)

如果我像这样使用垫子

Mat m1 =Imgcodecs.imread("/home/zed/Desktop/img.png");
Run Code Online (Sandbox Code Playgroud)

然后它给我差异错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)J
    at org.opencv.imgcodecs.Imgcodecs.imread_1(Native Method)
    at org.opencv.imgcodecs.Imgcodecs.imread(Imgcodecs.java:102)
Run Code Online (Sandbox Code Playgroud)

我是否为本土图书馆提供了正确的道路?如果没有,那么Native Library在eclipse-ubuntu中使用Opencv3.1.0的正确途径是什么

Ari*_*jit 1

你应该添加

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Run Code Online (Sandbox Code Playgroud)

主要的:

public static void main(String[] args) {

  System.out.println("Welcome to OpenCV hhhh " + Core.VERSION);
  System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
  Mat m1 =Imgcodecs.imread("/home/zed/Desktop/img.png");
  Mat m2=new Mat();
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!