Java在eclipse中调用opencv时报错:java.lang.UnsatisfiedLinkError的解决方法

来源:互联网 发布:红色高棉 知乎 编辑:程序博客网 时间:2024/05/22 02:23

昨天把Java+opencv的环境配置好后,迫不及待的进行测试......

出师不利....

第一个代码就有错误,代码如下:

import org.opencv.core.*;import org.opencv.highgui.Highgui;import org.opencv.imgproc.*;public class opencvTest02 {public static void main(String[] args){String filename = "E:/test01.png";Mat imgMat = Highgui.imread(filename);}}
报错如下:

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.opencv.highgui.Highgui.imread_1(Ljava/lang/String;)Jat org.opencv.highgui.Highgui.imread_1(Native Method)at org.opencv.highgui.Highgui.imread(Highgui.java:362)at com.lzw.opencvTest02.main(opencvTest02.java:10)
然后我就各种度,各种歌,各种找......无果!

然后又看了看测试代码:

import org.opencv.core.*;public class opencvTest{public static void main(String[] args){System.out.println("Welcome to OpenCV" + Core.VERSION);System.loadLibrary(Core.NATIVE_LIBRARY_NAME);Mat m = Mat.eye(3, 3, CvType.CV_8UC1);System.out.println("m = " + m.dump());}}
可以正常运行,然后我就把下边几行代码加到测试代码里边:

import org.opencv.core.*;<span><span class="keyword">import</span><span> org.opencv.highgui.Highgui;</span></span>public class opencvTest{public static void main(String[] args){System.out.println("Welcome to OpenCV" + Core.VERSION);System.loadLibrary(Core.NATIVE_LIBRARY_NAME);Mat m = Mat.eye(3, 3, CvType.CV_8UC1);System.out.println("m = " + m.dump());                String filename = "E:/test01.png";Mat imgMat = Highgui.imread(filename);
 }}

不报错!!!

我又注释掉了

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
报错!!!

所以,你懂的:

程序里必须加

System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
原因如下:


OpenCV API for JAVA的链接:docs.opencv.org/java/2.4.6/


1 0
原创粉丝点击