0

几周前,我发现了这个关于 opencv 和 javacv 手势检测的教程。我开始使用该示例,但一遍又一遍地遇到相同的错误。

这是错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_objdetect in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:593)
    at com.googlecode.javacpp.Loader.load(Loader.java:489)
    at handDectector.Handy.<init>(Handy.java:32)
    at handDectector.Handy.main(Handy.java:56)
Caused by: java.lang.UnsatisfiedLinkError: no opencv_objdetect248 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:593)
    at com.googlecode.javacpp.Loader.load(Loader.java:481)

我在网上阅读了很多与此问题相关的帖子,其中人们发现了相同的 javacpp 和 javacv 文件。我尝试这样做了几次,但没有成功。

这是代码:

package handDectector; 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import org.opencv.core.Core;

import java.io.*;

import com.googlecode.javacv.*;
import com.googlecode.javacv.cpp.*;
import com.googlecode.javacpp.Loader;



public class Handy extends JFrame 
{
  // GUI components
 private HandPanel handPanel;


  public Handy()
  {
    super("Hand Detector");

    Container c = getContentPane();
   c.setLayout( new BorderLayout() );   


    // Preload the opencv_objdetect module to work around a known bug.
    Loader.load(opencv_objdetect.class);

    handPanel = new HandPanel(); // the webcam pictures and drums appear here
    c.add( handPanel, BorderLayout.CENTER);

    addWindowListener( new WindowAdapter() {
      public void windowClosing(WindowEvent e)
      { handPanel.closeDown();    // stop snapping pics, and any drum playing
        System.exit(0);
      }
    });

    setResizable(false);
    pack();  
    setLocationRelativeTo(null);
    setVisible(true);
  } // end of Handy()


  // -------------------------------------------------------

  public static void main( String args[] )
  {  

    new Handy();  

  }

} // end of Handy class

问题在于 opencv_obj 文件不存在。

我对这个图书馆没有太多经验。如果有人可以帮助我解决问题,是否有可能?我肯定知道 github 和 stackoverflow 上有关于相同问题的帖子......但他们都使用 maven。没有maven可以做到吗?

4

1 回答 1

0

链接提供有关手动安装的说明。

但是我强烈建议您使用maven或一些依赖管理工具。如果您坚持手动进行,那么您可能想尝试添加dependencies链接部分中列出的所有依赖项。

于 2017-06-03T00:51:12.440 回答