当前位置:   article > 正文

Cent OS 7 安装 opencv-4.6.0_centos opencv

centos opencv

由于对 opencv 不了解折腾很久,踩过很多坑故整理安装成功后记录。

opencv 最新支持 Java8 版本只有 4.6.0. 之后的版本支持 Java11。

opencv-4.6.0 所需的必要依赖和版本,列举几个如下:

Python -3.0 以上

gcc g++ -8.0 以上

cmake  -3.0 以上

升级 gcc g++

# 安装 SCL 源

yum install -y centos-release-scl

# 安装 gcc8 g++8

yum install -y devtoolset-8-gcc*

设置环境变量

echo 'source /opt/rh/devtoolset-8/enable' >> /etc/profile

 使环境变量生效

source /etc/profile

 查看版本 

gcc --version

g++ --version

安装 Python 3.6.8 ,也可以安装指定版本。

官网地址: https://www.python.org

# 安装 python3 及后续所需工具

yum install -y python3 python3-devel python3-libs python3-tools wget unzip vim

#安装升级 python-pip

python3 -m ensurepip

python3 -m pip install --upgrade pip

查看版本

python3 -V

安装 cmake-3.20.0  

# cmake 必要依赖 openssl

yum install -y openssl openssl-devel

获取CMake源码包

wget -O cmake.tar.gz https://cmake.org/files/v3.20/cmake-3.20.0.tar.gz

解压CMake源码包

tar -zvxf cmake.tar.gz

进入目录

cd /root/cmake-3.20.0/

进行配置

./bootstrap --prefix=/usr/local/cmake

编译安装

make && make install

配置CMake环境变量

vim /etc/profile

在文件末尾添加以下内容:

PATH=:/usr/local/cmake/bin

保存并退出, 使配置生效

source /etc/profile

查看CMake版本信息

cmake --version

安装 opencv 依赖 ,如果需要生成 Java 相关的 .jar .so 。ant 依赖必要安装

yum install -y zlib-devel ant opencv-python libjpeg-turbo-devel libpng-devel libtiff-devel jasper-devel

装完以后,你会发现他会给你装个 open-jdk1.8,建议卸载掉

# 查看已安装的jdk包

rpm -qa | grep jdk

# 删除对应jdk软件包 xxx 为软件包名称 rpm -e --nodeps xxx 参考:

rpm -e --nodeps copy-jdk-configs-3.3-11.el7_9.noarch java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64 java-1.8.0-openjdk-headless-1.8.0.382.b05-1.el7_9.x86_64 java-1.8.0-openjdk-devel-1.8.0.382.b05-1.el7_9.x86_64 

下载 opencv 源码包

wget -O opencv.zip https://ghproxy.com/https://github.com/opencv/opencv/archive/refs/tags/4.6.0.zip

wget -O opencv_contrib.zip https://ghproxy.com/https://github.com/opencv/opencv_contrib/archive/refs/tags/4.6.0.zip 

 解压下载完成的源码包

unzip opencv.zip

unzip opencv_contrib.zip

创建并进入 build 目录

cd opencv-4.6.0 && mkdir build && cd build

cmake 进行参数配置

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=/root/opencv_contrib-4.6.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 :这个是生成pkg-config的命令,默认是不生成的(OFF)

-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 :关掉测试,提高编译效率,减少时间。 

配置完成后,可以看到以下信息

-- Configuring done

-- Generating done

-- Build files have been written to: /root/opencv-4.6.0/build

 PS:可能会有下载失败的文件,输出依然显示完成。如果您对 opencv 熟悉可以更换安装包默认的下载链接或者懂得 github 加速可能不会有此问题。

查看 vim /root/opencv-4.6.0/build/CMakeDownloadLog.txt ,检查下载文件是否都下载完成。如果日志有下载失败的文件,只需到该目录重新下载文件即可。下载失败示例:

手动下载,替换下载失败的文件。其他失败文件也是按照此方法。

# 进入 ippicv 目录

cd /root/opencv-4.6.0/.cache/ippicv

# 下载 ippicv 文件

wget -O 7421de0095c7a39162ae13a6098782f9-ippicv_2020_lnx_intel64_20191018_general.tgz https://ghproxy.com/https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_lnx_intel64_20191018_general.tgz

修复完成构建日志中下载失败的所有文件后, 查看内核数

[root@localhost ~]# nproc
8

输出 8 表示系统是 8核,使用 8 线程编译

make -j8

编译完成后,出现以下内容

[ 98%] Built target opencv_java
[ 98%] Building CXX object modules/gapi/CMakeFiles/opencv_perf_gapi.dir/perf/cpu/gapi_imgproc_perf_tests_fluid.cpp.o
[ 98%] Building CXX object modules/gapi/CMakeFiles/opencv_perf_gapi.dir/perf/cpu/gapi_video_perf_tests_cpu.cpp.o
[ 98%] Building CXX object modules/gapi/CMakeFiles/opencv_perf_gapi.dir/perf/gpu/gapi_core_perf_tests_gpu.cpp.o
[ 98%] Building CXX object modules/gapi/CMakeFiles/opencv_perf_gapi.dir/perf/gpu/gapi_imgproc_perf_tests_gpu.cpp.o
[ 98%] Building CXX object modules/gapi/CMakeFiles/opencv_perf_gapi.dir/perf/internal/gapi_compiler_perf_tests.cpp.o
[ 98%] Building CXX object modules/gapi/CMakeFiles/opencv_perf_gapi.dir/perf/perf_bench.cpp.o
[100%] Building CXX object modules/gapi/CMakeFiles/opencv_perf_gapi.dir/perf/perf_main.cpp.o
[100%] Building CXX object modules/gapi/CMakeFiles/opencv_perf_gapi.dir/perf/render/gapi_render_perf_tests_ocv.cpp.o
[100%] Building CXX object modules/gapi/CMakeFiles/opencv_perf_gapi.dir/perf/streaming/gapi_streaming_source_perf_tests.cpp.o
[100%] Linking CXX executable ../../bin/opencv_perf_gapi
[100%] Built target opencv_perf_gapi

安装

make install 

opencv 默认会到 /usr/lib 目录下查找依赖,所有将 libopencv_java460.so 复制到 usr/lib 

# 如果不知道 libopencv_java460.so 在哪,可以使用 find 命令进行查找

find / -name 'libopencv_java*'

# 拷贝到 /usr/lib

cp /usr/local/share/java/opencv4/libopencv_java460.so /usr/lib

将链接文件 opencv4.pc 文件指向 /usr/share/pkgconfig 目录的文件并运行 ldconfig 以重建库缓存

# 将 /usr/local/lib64/pkgconfig/opencv.pc 链接到 /usr/share/pkgconfig/​​​​

ln -s /usr/local/lib64/pkgconfig/opencv.pc /usr/share/pkgconfig/​​​​

# 使链接生效

ldconfig

添加环境变量

echo 'export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib64/pkgconfig' >> /etc/profile​

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64' >> /etc/profile

 使环境变量生效

source /etc/profile

查opencv是否安装成功,这一步必须要有结果,你应该可以分辨正确的结果,就不贴了 

pkg-config --modversion opencv4

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/778345
推荐阅读
相关标签
  

闽ICP备14008679号