一.背景
由于java项目在部分功能实现过程中使用了opencv库,现需要将window开发环境上的程序打包到linux生产环境上部署,服务器需要事先编译安装opencv,生成共享库(opencv-java4.5.3.so)及jar文件,以实现部署在linux下的java程序调用opencv。
二.依赖关系
本人在opencv编译过程中使用的opencv以及依赖库依赖关系如下,其中版本可根据需要自行调整,可能部分依赖库在本次编译之前已经安装,该部分未在下列图中体现:
三.依赖安装
1.cmake-3.21.2
(1)cmake压缩文件下载
https://cmake.org/download/
(2)文件解压
tar -zxvf cmake-3.21.2.tar.gz
cd cmake-3.21.2
(3)环境检查及配置
./bootstrap
此过程中遇到如下错误:
CMake Error at Utilities/cmcurl/CMakeLists.txt:525 (message):
Could not find OpenSSL. Install an OpenSSL development package or
configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.
解决:安装openssl
yum install openssl openssl-devel
(4)编译
gmake
(5)安装
sudo make install
(6)查看版本
cmake -version
2.jdk
jdk安装配置参考以下文章:
https://mp.csdn.net/mp_blog/creation/editor/119775594
3.ant
(1)压缩文件下载
https://ant.apache.org/bindownload.cgi
(2)解压
tar -zxvf apache-ant-1.9.16-bin.tar.gz
(3)配置环境变量
编辑profile配置文件
sudo vim /etc/profile
在文件末尾增加以下配置:
export ANT_HOME=/usr/apache-ant-1.9.2
export PATH=$PATH:$ANT_HOME/bin
配置立即生效:
source /etc/profile
(4)查看版本
ant -version
四.编译安装opencv
1.解压opencv压缩包并进入解压目录
tar -zxvf opencv-4.5.3.tar.gz
cd opencv-4.5.3
2.在解压目录下新建文件夹build并进入
mkdir build
cd build
2.进入build,执行以下命令:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.5.3 ..
参数说明:
CMAKE_BUILD_TYPE:This statically specifies what build type (configuration) will be built in this build tree. Possible values are empty, Debug
, Release
, RelWithDebInfo
, MinSizeRel
, ...
CMAKE_INSTALL_PREFIX:安装目录
3.build目录下使用如下命令编译opencv
make -j4
其中j4参数是指定使用4个线程执行编译任务
4.build目录下使用如下命令安装opencv
sudo make install
至此,opencv4.5.3版本在cenos7下的编译安装已经完成,进入CMAKE_INSTALL_PREFIX参数指定的安装目录下,进入/share/java/opencv4,如果生成如下两个文件,则编译安装成功:
生成的.so文件在java中与window下的dll文件加载方法相同
生成的jar文件与windows下生成的jar文件是一样的