SpringBoot环境下配置Java版OpenCV
opencv是享受盛誉的图像处理库,可惜是个c库,但是早些年其也提供了java版本的接口,但是国内其资料和教程实在太少,并且在JavaCV混得风生水起的情况下,OpenCV-Java的生存环境越来越恶劣。
但是近期图像处理大作业,脑子抽了想要模仿Photopea做Web版Ps网站,顺便搭起了前后端分离项目,后端语言定了Java,又不想额外花时间去学习JavaCV,所以就选择了OpenCV-Java(其实有Python版,而且生态比Java好不是一丁半点,但是我不会有python写后端)。
这里会和大家详细讲解一下自己在学习和构建过程中学到了有趣的内容,并分享一点自己的思路。
第一步就是构想springboot环境下的opencv,在 https://opencv.org/ 首页栏目中选择Library->Release进入下载
这里我使用的是最新版4.5.4(当时的),选择window环境下载(因为我是window,mac就选mac大体操作都一样的)
下载完成后进入浏览器下载目录,发现下载的后缀是个.exe
,不用管他,双击打开,就会提示解压目录,
解压完成后,双击进入文件夹,在opencv->build->java中有以下几个文件
此刻只需要讲jar包复制到工程文件的目录下即可,同时在jar包所在文件夹下将对应系统的dll拖过去,这里建议带着他的文件夹一块托,所以最后结果应该如下:
之后在springboot启动类中通过静态代码块的形式导入Opencv的资源文件。
/*Springboot启动类*/
@SpringBootApplication
@EnableScheduling
public class ImageApplication {
static {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//注意程序运行的时候需要在VM option添加该行 指明opencv的dll文件所在路径
//-Djava.library.path=$PROJECT_DIR$\opencv\x64
}
public static void main(String[] args) {
SpringApplicationBuilder builder = new SpringApplicationBuilder(ImageApplication.class);
builder.headless(false).run(args);
}
}
最后一步就是编辑vm启动参数,这里上面代码块的注释中已经写过怎么配置了,我是用绝对路径的方式配置的,各位可以根据自己实际需要进行配置。
至此你整合opencv的springboot项目就可以启动了,至于java版opencv的一些基本操作和一些花里胡哨的特效我们之后再讲。