Ubuntu20.04+opencv-4.3.0+opencv_contrib-4.3.0安装

  • 为什么需要opencv_contrib?
  • 下载opencv与opencv_contrib
  • 安装依赖项
  • 安装cmake-gui并编译
  • 在opencv-4.3.0下创建build
  • 开始cmake-gui编译
  • 输入源文件地址和编译地址并点击configure
  • 部分完成
  • 配置编译选项第一步:在search栏搜索path 添加opencv_contrib-4.3.0/modules的地址
  • 配置编译的第二步:在search栏搜索type 设置CMAKE_BUILD_TYPE 为release
  • 配置编译第三步:在search栏搜索world BUILD_OPENCV_WORLD打钩
  • 点击generate 出现configuring and generating done
  • 在build目录下根据自己是几线程进行编译
  • 出现错误一:fatal error: boostdesc_bgm.i: 没有那个文件或目录
  • 解决方式:/home/csh/opencv/opencv_contrib-4.3.0/modules/xfeatures2d/src目录下加上缺失的文件
  • 清除编译记录之后再次编译
  • 出现问题2:fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件或目录
  • 解决方式:把opemcv-4.3.0/modules/features2d 文件夹拷贝到build目录
  • 清除编译记录之后再次编译
  • 安装成功
  • 配置环境变量


为什么需要opencv_contrib?

不安装opencv_contrib将导致一些问题:opencv2/face.hpp找不到;人脸识别的功能无法使用,单纯从其他地方copy face.hpp将影响opencv实际的使用,所以还是老老实实地把opencv与opencv_contrib一起编译!

下载opencv与opencv_contrib

为了避免不必要的错误,保持opencv和opencv_contrib版本一致
opencv4.3.0源码地址
opencv4.3.0源码地址 opencv_contrib4.3.0源码地址
opencv_contrib4.3.0源码地址 下载速度太慢的话,可以在windows下用迅雷下载!

对下载好的文件进行解压
创建解压文件夹

sudo mkdir opencv

解压

sudo tar -zxvf opencv-4.3.0.tar.gz -C /home/csh/opencv
sudo tar -zxvf opencv_contrib-4.3.0.tar.gz -C /home/csh/opencv

ubuntu cmake 安装opencv 禁用ippicv_opencv

安装依赖项

sudo apt install build-essential cmake git pkg-config libgtk-3-dev \
    libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
    libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
    gfortran openexr libatlas-base-dev python3-dev python3-numpy \
    libtbb2 libtbb-dev libdc1394-22-dev

安装cmake-gui并编译

sudo apt-get install cmake-gui

在opencv-4.3.0下创建build

sudo mkdir build
cd build

开始cmake-gui编译

cmake-gui

输入源文件地址和编译地址并点击configure

ubuntu cmake 安装opencv 禁用ippicv_cmake_02

ubuntu cmake 安装opencv 禁用ippicv_2d_03

部分完成

ubuntu cmake 安装opencv 禁用ippicv_linux_04

配置编译选项第一步:在search栏搜索path 添加opencv_contrib-4.3.0/modules的地址

ubuntu cmake 安装opencv 禁用ippicv_ubuntu_05

配置编译的第二步:在search栏搜索type 设置CMAKE_BUILD_TYPE 为release

ubuntu cmake 安装opencv 禁用ippicv_2d_06

配置编译第三步:在search栏搜索world BUILD_OPENCV_WORLD打钩

ubuntu cmake 安装opencv 禁用ippicv_2d_07

点击generate 出现configuring and generating done

ubuntu cmake 安装opencv 禁用ippicv_cmake_08

在build目录下根据自己是几线程进行编译

nproc
make -j12
出现错误一:fatal error: boostdesc_bgm.i: 没有那个文件或目录

ubuntu cmake 安装opencv 禁用ippicv_cmake_09

解决方式:/home/csh/opencv/opencv_contrib-4.3.0/modules/xfeatures2d/src目录下加上缺失的文件

ubuntu cmake 安装opencv 禁用ippicv_cmake_10

百度网盘地址 提取码: 8k83

清除编译记录之后再次编译
make clean
make -j12
出现问题2:fatal error: features2d/test/test_detectors_regression.impl.hpp: 没有那个文件或目录
解决方式:把opemcv-4.3.0/modules/features2d 文件夹拷贝到build目录
清除编译记录之后再次编译
make clean
make -j12
安装成功

ubuntu cmake 安装opencv 禁用ippicv_2d_11

配置环境变量

sudo make install 
sudo gedit /etc/ld.so.conf.d/opencv.con

添加/usr/local/lib