[linux] CentOS 7 编译使用 openCv (Java)

安装编译环境

  • 安装 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 对比两个人脸的类似度》

© 版权声明

相关文章

暂无评论

none
暂无评论...