2017-09-11 163 views
-2

第一件事:我不是英語母語的人,所以我盡我所能。 我試圖使用JavaCV,但它不起作用。我得到的錯誤:JavaCV無法啓動

OpenJDK 64-Bit Server VM warning: You have loaded library /usr/lib/libtbb.so which might have disabled stack guard. The VM will try to fix the stack guard now. 
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'. 
Exception in thread "main" java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) 
Caused by: java.lang.UnsatisfiedLinkError: no jniopencv_core in java.library.path 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:870) 
    at java.lang.System.loadLibrary(System.java:1122) 
    at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:711) 
    at com.googlecode.javacpp.Loader.load(Loader.java:586) 
    at com.googlecode.javacpp.Loader.load(Loader.java:540) 
    at com.googlecode.javacv.cpp.opencv_core.<clinit>(opencv_core.java:134) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:348) 
    at com.googlecode.javacpp.Loader.load(Loader.java:561) 
    at com.googlecode.javacpp.Loader.load(Loader.java:540) 
    at com.googlecode.javacv.cpp.opencv_core$CvArr.<clinit>(opencv_core.java:156) 
    at Main.main(Main.java:18) 
    ... 5 more 
Caused by: java.lang.UnsatisfiedLinkError: /tmp/javacpp22248052399215/libjniopencv_core.so: libopencv_core.so.2.4: cannot open shared object file: No such file or directory 
    at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824) 
    at java.lang.Runtime.load0(Runtime.java:809) 
    at java.lang.System.load(System.java:1086) 
    at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:700) 
    ... 14 more 

我本教程安裝了OpenCV的: https://udallascs.wordpress.com/2014/03/30/adding-opencv-and-configuring-to-work-with-eclipse-and-java/

這裏是源代碼:

import com.googlecode.javacv.cpp.opencv_core.IplImage; 

//import static com.googlecode.javacv.cpp.opencv_core.*; 
//import static com.googlecode.javacv.cpp.opencv_imgproc.*; 
//import static com.googlecode.javacv.cpp.opencv_highgui.*; 

import java.awt.image.BufferedImage; 
import java.io.File; 

import javax.imageio.ImageIO; 


public class Main { 

public static void main(String s[]) { 
    try { 
    BufferedImage bi = ImageIO.read(new File("/home/arjan/Desktop/HelloWorld.jpg")); 
    IplImage img = IplImage.createFrom(bi); 
    // cvShowImage("Hello-World",img); 
    // cvSmooth(img, img, CV_GAUSSIAN, 13); 
    // cvShowImage("Blur-Image",img); 
    // cvWaitKey(); 
    // cvReleaseImage(img); 

    }catch (Exception ex) {ex.printStackTrace();} 
} 

}

我使用Arch Linux的,並與吃豆子 這裏還安裝了OpenCV的是我使用picture of jar files

+2

我發現它有時會讀取我從他們不工作時得到的錯誤。通常他們幫助我解決我的問題。 –

回答