spring boot整合OpenCV4.5
本文是本Java小白参考了若干篇相关博客,整理而成,折腾了两三个小时。本地环境是win11,jdk1.8,idea2021版本,所以有些界面可能看起来并不一样。整体的心路历程是大部分参考文章尾部的链接1,然后结合出现的两个问题去针对性解决。并且这两个问题是出现在第五步测试程序的时候,如果大佬知道原因欢迎在评论区指出,本文很大程度是小白整理心路历程及以后所需,如有错误欢迎指正。
第一步:选择安装的OpenCV包
这里我选择的是OpenCV4.5.5.我这里选择的是Windows。官网链接:OpenCV官网
第二步:解压OpenCV包并放至项目目录下面
把解压后的OpenCV压缩包中的\opencv\build\java中的文件复制进去,得到下面的目录结构。
Tips:并且这里我为了opencv找起来方便,所以我这里opencv文件夹直接复制放到了D盘下面。所以我的D:\opencv\build\java下面就有opencv-455.jar文件。以此作为本地解压缩文件后的位置,大家可以对应自己的目录文件。后面用到的时候注意是本地解压后的jar包位置还是项目内的jar包位置。不做本地的opencv目录更改也行,但注意目录名最好不要有中文。
第三步:导入jar包
先找到项目结构
再找到添加本地jar包。这里jar包可以找本地解压缩后的\opencv\build\java的jar包,也可以直接就是我们工程目录下OpenCV下的jar包。这里我选择的是第二种方式。
第四步:配置动态链接库文件(dll)
在VM options里面填入:-Djava.library.path=D:\opencv\build\java\x64
还有一种填法是
-Djava.library.path=$PROJECT_DIR$\opencv\x64
64位选x64,32位选x86.
注意这里我使用的是我本地解压缩后的OpenCV文件夹下面的包,也就是第一种填法。如果不适用可以尝试第二种。
第五步:测试程序
新建个类,适当修改下,因为我是在整体项目中放进去的,所以没完全按照这个来。最终测试成功。
import org.opencv.core.Core;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Scalar;
public class OpenCVJavaTest{
static{ System.loadLibrary(Core.NATIVE_LIBRARY_NAME); }
public static void main(String[] args) {
System.out.println("Welcome to OpenCV " + Core.VERSION);
Mat m = new Mat(5, 10, CvType.CV_8UC1, new Scalar(0));
System.out.println("OpenCV Mat: " + m);
Mat mr1 = m.row(1);
mr1.setTo(new Scalar(1));
Mat mc5 = m.col(5);
mc5.setTo(new Scalar(5));
System.out.println("OpenCV Mat data:\n" + m.dump());
}
}
可能出现的问题:
1.Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project demo: There are test failures.
在pom配置文件下面的plugins里面加入下面代码:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
2.程序包org.opencv.core不存在
一共做了两种尝试,后面就没有报这个错了。
1.如图,清理下idea缓存。
2.在pom配置文件中添加本地依赖
<dependency>
<groupId>org</groupId>
<artifactId>opencv</artifactId>
<scope>system</scope>
<systemPath>${project.basedir}\opencv\opencv-455.jar</systemPath>
<version>4.5.5</version>
</dependency>
参考链接
1.https://blog.csdn.net/wangwenjie1997/article/details/88775600
2.https://blog.csdn.net/qq_41155209/article/details/124297661
3.https://blog.csdn.net/chengjiayijiu/article/details/121157115