Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_highgui in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:)
at java.lang.Runtime.loadLibrary0(Runtime.java:)
at java.lang.System.loadLibrary(System.java:)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:)
at com.googlecode.javacpp.Loader.load(Loader.java:)
at com.googlecode.javacpp.Loader.load(Loader.java:)
at com.googlecode.javacv.cpp.opencv_highgui.<clinit>(opencv_highgui.java:)
at com.cn.main.ReadImage.main(ReadImage.java:)
Caused by: java.lang.UnsatisfiedLinkError: C:\Users\Administrator\AppData\Local\Temp\javacpp97080304735100\jniopencv_highgui.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:)
at java.lang.Runtime.load0(Runtime.java:)
at java.lang.System.load(System.java:)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:)
... more

问题原因:opencv和javacv版本不一致导致的,

opencv版本是2.4.6.0,javacv是0.6

javacv0.7对应的windows版本:opencv2.4.8.exe

版本不一致

opencv download:

http://opencv.org/downloads.html

http://wiki.opencv.org.cn/index.php/Download

经过长时间的学习,本人找到了一个新的版本,能够很好的解决之前版本的问题。

使用更高版本,这样就像使用其他资源库一样。

首先是pom.xml

<!-- https://mvnrepository.com/artifact/org.bytedeco/javacv -->
<dependency>
<groupId>org.bytedeco</groupId>
<artifactId>javacv</artifactId>
<version>1.2</version>
</dependency>

这里告诉大家一个查询依赖包的方法,屡试不爽。由于国内使用谷歌浏览器不方便,可以使用谷歌镜像,输入 mevan javacv dependency ,即可搜索到。

然后,给出一个demo

//扩张,将目标的边缘的“毛刺”踢除掉
public static void morphology_Dilation(String filename,int dilation_elem)
{
CvMat src, dilation_dst;
src = cvLoadImageM(filename);
dilation_dst=src;
int dilation_type=CV_SHAPE_RECT;
if( dilation_elem == 0 ){ dilation_type = CV_SHAPE_RECT; }
else if( dilation_elem == 1 ){ dilation_type = CV_SHAPE_CROSS; }
else if( dilation_elem == 2) { dilation_type = CV_SHAPE_ELLIPSE; }
// CvMat element = cvGetStructuringElement( dilation_type,
// cvSize( 2*1 + 1, 2*1+1 ),
// cvPoint( 2, 2 ) );
/// Apply the dilation operation
IplConvKernel kernel=//cvCreateStructuringElementEx(3,3,1,1,dilation_type,null);
cvCreateStructuringElementEx(3,3,1,1,dilation_type);
cvDilate( src, dilation_dst, kernel,1);
cvReleaseStructuringElement( kernel );
cvSaveImage("D:/java/pic/pic/ba_morphology_Dilation_"+dilation_type+".JPG", dilation_dst);
}

不在赘述!低版本的javacv需要引入的资源太多,使用不方便。

opencv和javacv版本不一致的更多相关文章

  1. 因OpenCV版本不一致所引发的报错

    目录 一 因OpenCV版本不一致所引发的报错 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 因OpenCV版本不一致所引发的报错 今天遇到了一个很有意思的报错. 事情是这样的, 在编译& ...

  2. linux显示git commit id,同时解决insmod模块时版本不一致导致无法加载问题

    linux内核默认会包含git的commit ID. 而linux的内核在insmod模块时,会对模块和内核本身的版本做严格的校验.在开发产品时,改动内核后,由于commit ID变更,会导致linu ...

  3. 关于 C# 调用 JavaWebservice服务,版本不一致的问题

    1. A SOAP 1.2 message is not valid when sent to a SOAP 1.1 only endpoint.   问题原因: 客户端和服务端的SOAP协议版本不一 ...

  4. Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/ma ven/cli/Maven/java与javac版本不一致问题

    编译的时候 中出现如下异常: Exception in thread "main" Java.lang.UnsupportedClassVersionError: org/apac ...

  5. 安装多JDK后,java编译环境和运行环境版本(JDK版本) 不一致解决:

    由于之前安装过JDK1.7 ,现在一个项目是JDK1.5的,那么需要更改了环境变量了,此处不再赘述如何设置JDK 的环境变量了.然后网上找来方法: 在安装多个jdk后,出现了java -version ...

  6. Unsupported major.minor version 51.0 在配置/运行Maven工程时,JDK与Maven所引用的jdk版本不一致

    在配置Maven工程,部署到tomcat服务器运行的过程中,遇到如下错误: "Unsupported major.minor version 51.0 " 错误原因是由于maven ...

  7. ORA-00214: control file 控制文件版本不一致

    故障现象:今日学习oracle控制文件移动和修改,发现本机安装oracle数据库启动时只使用了一个控制文件.如下:SQL> select * from V$controlfile; STATUS ...

  8. Java环境变量配置&解决版本不一致问题

    之前用Myeclipse编译运行Java没有问题 但是突然想用简单点的NotePad++以及cmd直接编译运行Java 这就让我倒腾了一晚上 先说下问题的解决,再总结下查阅的一些知识. 1.进行win ...

  9. Maven版本不一致的时候,使用指定版本进行编译

    最近用Maven打包项目(本地jdk11)后放到服务器(jdk8)后,报[java.lang.UnsupportedClassVersionError]版本不一致错误. 网上资料说是修改Intelli ...

随机推荐

  1. java静态代码块 类加载顺序问题。

    class B extends Object { static {System.out.println("Load B");} public B(){System.out.prin ...

  2. oracle中循环插入语句

    DECLARE i number:=30000;BEGIN for i in 1..100 loop insert into Maternal_Info(id,sjh,bbsr,cf) values( ...

  3. jsp中的动作元素:<jsp:plugin>

    <jsp:plugin>用来产生客户端浏览器的特别标签(object或embed),可以使用它来插入Applet或JavaBean. 当jsp文件被编译把结果发给浏览器是,<jsp: ...

  4. Linux_install mod_ssl openssl apache

    1.下载 mod_ssl 和 apache 登入http://www.modssl.org/source/,下载 mod_ssl-2.8.31-1.3.41.targz: 2.8.31是mod_ssl ...

  5. -fembed-bitcode is not supported on versions of iOS prior to 6.0

    -fembed-bitcode is not supported on versions of iOS prior to 6.0   说法二 错误提示 -fembed-bitcode is not s ...

  6. spark Association failed with [akka.tcp:sparkMaster@ip:7077]

    今搭建spark集群, conf/spark-env.sh 配制如下 export SPARK_MASTER_IP=masterexport SPARK_MASTER_PORT=7077export ...

  7. monogdb笔记1

    :db.collection.remove()与db.collection.drop()的比较 插入100万条测试数据 ;i<;i++){ db.tester.insert({-i}) } 进行 ...

  8. 安卓各文件存储路径汇总(Android file path)

    写下来,省得以后不记得到处翻: Environment.getDataDirectory() = /data Environment.getDownloadCacheDirectory() = /ca ...

  9. linux文件合并,去重,分割

    第一:两个文件的交集,并集前提条件:每个文件中不得有重复行1. 取出两个文件的并集(重复的行只保留一份)2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)3. 删除交集,留下其他的行1. c ...

  10. PHP上传文件出现文件名被截掉第一个字符的问题

    最近用PHP做了一个简单的上传功能,结果出现了一个意想不到的问题.我上传的文件,在获取$_FILES的时候发现文件名的第一个字符被截掉了,因为最开始上传的一直是数字或者字母为名称的文档,也没有太在意这 ...