最近尝试接触图片处理与图片识别的技术
研究到了OpenCV
涉及java的例子比较少
根据操作引入lib和dll后,报错java.lang.UnsatisfiedLinkError
有大佬说要加 System.loadLibrary(Core.NATIVE_LIBRARY_NAME);不然会报错java.lang.UnsatisfiedLinkError
可是我加了依旧报错java.lang.UnsatisfiedLinkError
后来查到的解决方式如下:(本人Windows64位操作系统)
将下载的opencv\build\java\x64下面的dll文件复制到C:\Windows\System32
在这里插入图片描述
在这里插入图片描述
然后去idea启动main方法,就不报错了
在这里插入图片描述
赶时间粗略整理,后续完善
参考自:https://blog.csdn.net/qq_41645986/article/details/115457853

OpenCV 4.0 需要用到的动态库,如果没有改dll会 报错 , System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 报错 提示需要在jdk下有该文件, 本文件存放在/ java path/bin/下, 该文件是64位window系统下 使用 综合下来,推荐第三种,做一个私有加过包的镜像,虽然前面麻烦点,但一次搞定,也不影响后续的发布。之后,CTRL+P+Q退出容器, 使用 命令docker ps -a 找到刚才的容器ID,将dockerfile第一句的from改成from jdklibxcb就好了,这个方法每次重新发布,重新生成了新的容器后,就需要去容器中执行一次,比较麻烦。jdklibxcb.tar为包含已经有了libxcb1的镜像包文件,这种方法每次构造镜像的时候会久一点,因为多了一步安装libxcb。修改后dockerfile变成了。 studio中碰到的jni问题 最近在做supervideo,解析youku视频地址,是加过密处理,须要用对应的key去解析,获取对应数据,在引用jni时,发现接二连三出问题,以前用eclipse时开发,直接把so文件放在libs/armeabi/下,就可以了,如果有有平台差异,也最多加个libs/armeabi-v7a之类的,在studio中,jni以前虽然写过相关工程,但是没有没有遇到相关问题,看来应了一句话:没有问题,可能以后才是最大的问题。那就总结下这两天这个接二连三的异常。 首先,在拼接好了url之后,接用把key和url去加密,调用jni方法。报出第一个错误,信息如下: 正确的方法是 将 opencv 安装路径下的 opencv _ java 341.dll (记得是64位!!!–<F:\ProgramFiles (x86)\ opencv \build\ java \x64\ opencv _ java 341.dll>)放入C:\WINDOWS\System32\ 之下,即可 启动 加载文件 System.loadLibrary( Core.... 该楼层疑似违规已被系统折叠隐藏此楼查看此楼学了5天,遇到了这个问题,完全不懂啊,憋了一下午了,求大神帮助08-28 09:24:01.451: E/AndroidRuntime(2226): FATAL EXCEPTION: main08-28 09:24:01.451: E/AndroidRuntime(2226): Process: com.zjiang.dangerous, PID: 22... java 调用 opencv 处理图像时所需的dll文件 将文件放在工程根目录,在程序开始时加载下面的语句 String relativelyPath = System.getProperty("user.dir"); System.load(relativelyPath + "\\ opencv _ java 340-x64.dll"); 如果不添加,会 报错 Exception in thread "main" java . lan g. UnsatisfiedLinkError : org. opencv .imgcodecs.Imgcodecs.imread_1(L java / lan g/String;)J