想使用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
在使用JavaCV进行图像处理时遇到maven依赖下载缓慢及缺少opencv动态链接库dll的问题。通过注释掉特定classifier解决maven配置报错,然后从opencv安装包获取dll文件,并使用System.load()加载,成功运行代码。
6054

被折叠的 条评论
为什么被折叠?



