安装编译环境
- 安装 CMake (已安装则忽略此步骤)
《CentOS 7 安装 CMake》 - 安装 Ant
调jni的SDK的jar包是通过ant编译,所以,需要装这个东西
装完以后,你会发现他会给你装个jdk1.8,建议卸载掉
yum -y install ant
- 配置JAVA_HOME
安装之前先卸载掉已经安装的jdk版本
// 查看已安装的jdk包
rpm -qa | grep jdk
// 删除对应jdk软件包 xxx 为软件包名称
rpm -e --nodeps xxx
重新安装配置自己的jdk环境:《JDK环境变量配置》
OpenCv 安装
版本:4.4.0
下载地址:基础包(opencv-4.4.0.tar.gz)、拓展包(opencv_contrib-4.4.0.tar.gz)
- 解压
tar -zxvf opencv-4.4.0.tar.gz
tar -zxvf opencv_contrib-4.4.0.tar.gz
- 构建 (创建build目录,在build目录中构建,如有问题可删除build目录重新构建)
cd ./opencv-4.4.0
mkdir build && cd build
- 开始构建 - 注意后面有两个点一起复制
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib-4.4.0/modules -D ENABLE_CXX11=ON -D WITH_1394=OFF -D BUILD_opencv_xfeatures2d=OFF -D BUILD_SHARED_LIBS=OFF -D BUILD_TESTS=OFF ..
cmake的参数说明:
-D CMAKE_BUILD_TYPE=RELEASE :编译发布版本
-D CMAKE_INSTALL_PREFIX=/usr/local :编译后的安装主目录
-D OPENCV_GENERATE_PKGCONFIG=ON :这个是为了C++引用的,可以忽略
-D OPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib-4.4.0/modules :这个就是拓展包中附加模块路径,这个地址需要自定义
-D ENABLE_CXX11=ON :C++版本支持
-D WITH_1394=OFF :这个好像要加些依赖,关掉。不关也没关系
-D BUILD_opencv_xfeatures2d=OFF :这里要重点说一下,在附件模块opencv_contrib-4.4.0/modules里面有很多目录,如果有些你不想要就关掉。比如xfeatures2d这个就导致我编译不过,我又不用,直接关掉。
-D BUILD_SHARED_LIBS=OFF :这个重点说,就是让依赖库变成一个SO而不是很多SO。这个SO就是java的jni要用的。
-D BUILD_TESTS=OFF :关掉测试,提高编译效率,减少时间。
- 编译
# -j8为核数,不加多核编译的话,可能需要几十分钟
make -j8
make install
- 完成
在/usr/local/share/java/opencv4目录下会有我们所需的jar包与so库文件,如果没有,那就删了build文件,重新构建编译
使用请参考《人脸识别 - 相似度》
参考文档
《opencv官方网站》
《Linux环境下编译并使用java_opencv》
《Java借助OpenCV实现人脸识别登录完整示例》
《opencv使用 java 对比两个人脸的相似度》
网友评论