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

想使用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.csdn.net/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文件,发现CSDN上的都需要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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章