date: 2020-07-13title: Centos 7.6安装opencv #标题
tags: OpenCV #标签
categories: linux大杂烩 # 分类

记录下OpenCV源码安装过程。

源码安装OpenCV

从源代码构建OpenCV库可以拥有最新的可用版本。它将针对特定系统进行优化,并且我们将完全控制构建选项。

安装依赖项

  1. wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  2. yum makecache fast
  3. yum -y install unzip cmake gcc gcc-c++ kernel-devel \
  4. gcc-gfortran git libgnomeui-devel gtk2 gtk2-devel \
  5. gtk2-devel-docs gnome-devel gnome-devel-docs python-devel \
  6. numpy libdc1394-devel libv4l-devel gstreamer-plugins-base-devel ant

安装ffmpeg组件

  1. yum -y localinstall nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
  2. yum -y localinstall nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
  3. rpm import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
  4. rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
  5. yum -y install ffmpeg ffmpeg-devel
  6. ffmpeg -version # 查看ffmpeg版本

ffmpeg版本返回信息如下:

Centos 7.6安装opencv - 图1

安装配置OpenCV

OpenCV托管在github上,国内用户下载的话,比较慢(我的网速压根下不动),所以我fork到了码云一份,从码云下载比较快,下面是码云及github的下载页面链接:

github比较新,我在码云fork此仓库时,opencv最新版本为4.1.1。
自行选择。

注:码云下载时需要输入机器验证码进行确认,请自行到页面下载后,上传至服务器。

  1. $ mkdir /apps/usr/ -p && cd /apps/usr
  2. $ unzip opencv-3.4.1.zip
  3. $ cd opencv && mkdir build && cd build
  4. $ cmake -D CMAKE_BUILD_TYPE=RELEASE \
  5. -D CMAKE_INSTALL_PREFIX=/apps/usr/opencv_3.4.1 \
  6. -D INSTALL_C_EXAMPLES=ON \
  7. -D INSTALL_PYTHON_EXAMPLES=ON \
  8. -D OPENCV_GENERATE_PKGCONFIG=ON \
  9. -D BUILD_EXAMPLES=ON ..
  10. # CMake构建系统完成后,将看到以下输出:
  11. -- Configuring done
  12. -- Generating done
  13. -- Build files have been written to: /apps/usr/opencv/build

若在cmake阶段卡在下面的界面:

Centos 7.6安装opencv - 图2

可以参考CSDN 博文,进行解决,如下(所需tgz包从作者提供的github地址下载较慢,可以选择从我的网盘下载,提取码jaka:):

Centos 7.6安装opencv - 图3

好,我们接着往下搞。

  1. $ make -j$(nproc)
  2. # 输出如下信息,表示make成功:
  3. [100%] Linking CXX executable ../../bin/example_cpp_contours2
  4. [100%] Built target example_cpp_contours2
  5. [100%] Linking CXX executable ../../bin/example_cpp_example
  6. [100%] Built target example_cpp_example
  7. $ make install # 安装opencv
  8. $ echo $? # 输出为0,表示安装成功
  9. 0
  10. # 配置环境变量
  11. echo "/apps/usr/opencv_3.4.1/lib64" >> /etc/ld.so.conf.d/opencv.conf
  12. cat >> /etc/profile <<"EOF"
  13. export PKG_CONFIG_PATH=/apps/usr/opencv_3.4.1/lib64/pkgconfig:$PKG_CONFIG_PATH
  14. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/apps/usr/opencv_3.4.1/lib64
  15. EOF
  16. source /etc/profile
  17. ldconfig

验证opencv可用性

  1. # 查询OpenCV版本
  2. $ pkg-config --modversion opencv
  3. # 运行测试程序
  4. cd /apps/usr/opencv/samples/cpp/example_cmake/
  5. make
  6. # make 输出如下:
  7. g++ example.cpp -o example.o -c -Wall -I/usr/local/include/opencv -I/usr/local/include
  8. g++ example.o -o opencv_example -L/usr/local/lib64 -lopencv_dnn -lopencv_ml -lopencv_objdetect -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core -ldl -lm -lpthread -lrt
  9. $ ./opencv_example # 执行生成的程序
  10. Built with OpenCV 3.4.1 # 在这里会卡一阵

无图形化桌面的终端会输出如下:

Centos 7.6安装opencv - 图4

如果是在图形化桌面上执行的,那么在命令卡住很久后(大概二十分钟左右,只要没报错,就一直等着就对了),会输出以下:

Centos 7.6安装opencv - 图5

至此,opencv安装完成!!!