javacv读取图片报错org.opencv.imgcodecs.Imgcodecs.imread_1(Ljava/lang/String;)的解决方法以及opencv的dll文件下载

在使用JavaCV进行图像处理时遇到maven依赖下载缓慢及缺少opencv动态链接库dll的问题。通过注释掉特定classifier解决maven配置报错,然后从opencv安装包获取dll文件,并使用System.load()加载,成功运行代码。
AI助手已提取文章相关产品:

想使用java做图像处理,对比下两张图片的相似度。查资料发现javacv可以使用,没想到实际操作还是困难不少。

首先,pom依赖问题:

    关于maven配置问题,查看javacv的githud 网址 https://github.com/bytedeco/javacv,pom配置如下:

<dependency>
    <groupId>org.bytedeco</groupId>
    <artifactId>javacv-platform</artifactId>
    <version>1.4.1</version>
  </dependency>

结果发现maven下载了半天依赖都下载不完,而且很多依赖可能都用不到。

    接着查资料,发现这篇博客 https://blog.youkuaiyun.com/qi531621028/article/details/80172934 不错,但是发现配置中的

<classifier>${javacpp.platform.dependencies}</classifier>会引起报错,果断注释掉了。

接着写段简单的代码,运行下:

import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ImageUtil {
public static void main(String[] args) {
    Mat mat = Imgcodecs.imread("C:/Users/hspcadmin/Desktop/chrome.png");
}

}

不出所料,果断报错。


接着查原因显示是opencv的dll文件未加载问题,于是搜索下载dll文件,发现优快云上的都需要C币才能下载,可怜没有C币了。只能下载opencv安装获取dll文件。修改代码如下,运行成功。

import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import com.tester.jmx.JmxGenerate;
public class ImageUtil {
public static void main(String[] args) {
System.load(JmxGenerate.COMMON_PATH + "opencv_java340-x64.dll");
Mat mat = Imgcodecs.imread("C:/Users/hspcadmin/Desktop/chrome.png");
}

}

注意使用System.load()而不是loadLibrary()

附上opencv的dll文件百度网盘下载链接,没有C币的同学也可以下载:

https://pan.baidu.com/s/1T7-g2TD1JdXzvugurEjNmA


您可能感兴趣的与本文相关内容

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值