[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 对比两个人脸的相似度》

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容