执行新Mat()时出现UnsatisfiedLinkError

时间:2015-06-05 10:02:39

标签: java opencv netbeans

我目前正在尝试编写一个小程序来拍摄新学生的照片,并通过他们的名字等来保存它们以减轻铭文的内容等。

所以这是我的问题,我找到了一个很棒的教程来帮助我使用网络摄像头: http://www.codeproject.com/Tips/717283/How-to-use-OpenCV-with-Java-under-NetBeans-IDE

我可以在没有错误的情况下运行这个项目但是当我尝试将一些代码导入到我的时候我遇到了这个错误:

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)
    at recupphoto.Ihm.<init>(Ihm.java:38)
    at recupphoto.RecupPhoto.main(RecupPhoto.java:19)
Java Result: 1

执行这些行时发生错误:

Mat frame = new Mat();
MatOfByte mem = new MatOfByte();

以下是我的导入,以防有助于找出:

import java.util.ArrayList;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import javax.imageio.ImageIO;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import org.opencv.core.Mat;

import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.videoio.VideoCapture;

编译时我得到了这条消息,如果相关则不知道

注意:某些输入文件使用未经检查或不安全的操作。 注意:使用-Xlint重新编译:取消选中以获取详细信息。

当调用Mat()但我找不到如何修复它时,两个错误都会出现(我猜)。

我应该在这里使用一些帮助或提示!感谢您阅读此内容并抱歉我的英语不好!

2 个答案:

答案 0 :(得分:11)

最终解决了我的问题,事实是我打电话了

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

太晚了,所以我稍微移动了一下并解决了:)感谢所有花费一点时间来帮助我的人!

答案 1 :(得分:0)

步骤1获取依赖性walker应用程序。

步骤2浏览相关的库文件夹。

步骤3查看缺少的内容并获取它。

提示:

确保为您的架构获取32位或64位的DLL。

确保使用适当的java(32位/ 64位)进行编译,具体取决于您提供的DLL。

最后,如果你缺少的依赖项开始于MSVCP ***。dll下载Microsoft Visual C++ Packages。再次关心架构。我建议你从这一步开始。