一、环境部署
- Windows
- 在OpenCV官网下载安装包
- 安装完毕后,在opencv\build\java复制jar包,后续导入依赖时使用
- 在opencv\build\java\x64或opencv\build\java\x86复制dll文件,将dll文件复制到C:\Windows\System32文件夹
- Linux 以Centos为例
- 安装依赖
yum install gcc gcc-c++
yum install cmake*
yum install gtk2-devel
yum install ant
- 在官网下载OpenCV源码,上传至Linux服务器并解压
- 进入解压后的OpenCV源码目录,创建编译目录
cd /opencv4.4.0
mkdir build
cd build
- 生成makefile(/makefile目录更换为自定义的文件夹)
cmake -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/makefile ..
.. 代表在父目录执行
- 编译、安装
make
make install
- 安装后产生的文件
opencv-4.4.0/build/lib/libopencv_java440.so
opencv-4.4.0/build/bin/opencv-440.jar
jar包和Windows下生成的一样;so包则是Linux所特有,对应于Windows的dll文件
7. 将libopencv_java440.so复制到 /usr/lib 文件夹
8. Linux下编译安装完成后会默认部署OpenJDK11环境在服务器上,影响服务器原Java环境,只需要手动卸载OpenJDK即可,原Java环境会重新生效
二、导入依赖
- 在SpringBoot项目的resources文件夹新建 /lib/opencv 文件夹,将 jar 包复制进去
- 项目不要集成spring-boot-devtools工具,会影响dll库文件导入
- 添加依赖
<!-- OpenCV -->
<dependency>
<groupId>org</groupId>
<artifactId>opencv</artifactId>
<scope>system</scope>
<systemPath>${project.basedir}\src\main\resources\lib\opencv\opencv-440.jar</systemPath>
<version>4.4.0</version>
</dependency>
三、使用
- 新建MatUtil,将图片Base64(去掉Base64文件头)转为Mat对象
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.MatOfByte;
import org.opencv.imgcodecs.Imgcodecs;
import sun.misc.BASE64Decoder;
import javax.imageio.ImageIO;
import javax.xml.bind.DatatypeConverter;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.io.<