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

昨天把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;)J
	at 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/


  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值