Ubuntu20.04安装opencv-C++接口

  • OpenCV有c++接口的和Python接口的,本文主要介绍c++接口的安装,Python接口的opencv较为容易安装
  • 如果只是使用 OpenCV 的基本功能,那么opencv安装方法非常简单快捷。但是如果要使用一些额外的算法,比如人脸识别,那就需要安装 opencv_contrib 来实现,本文安装了opencv_contrib软件包,如果只安装opencv可以参考Ubuntu 16.04 安装opencv的各种方法(含opencv contrib扩展包安装方法)
  • 本文主要参考http://techawarey.com/programming/install-opencv-c-c-in-ubuntu-18-04-lts-step-by-step-guide/
  • 适用于OpenCV版本4.5.0,我尝试OpenCV3失败了

安装cmake

  • 在终端输入命令sudo apt-get install cmake

安装依赖库

  • 在终端依次执行下面的语句

更新软件源

1
2
sudo apt-get update
sudo apt-get upgrade

安装cmake git等工具

  • sudo apt-get install build-essential cmake git libgtk2.0-dev libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

配置python环境

  • 安装python之前先看看自己电脑是否有python,没有必要的话不需要安装多个python环境
  • 查看自己电脑的python版本
  • python3 -V或者python2 -V
  • 一般情况下Ubuntu自带的是python3
  • sudo apt-get install python3-numpy libtbb2 libtbb-dev
  • 下面这个包要对应自己的python版本安装
  • sudo apt-get install python3.8-dev
  • 如果提示找不到python3.8-dev软件包,则执行下面命令后再次安装
  • sudo apt-add-repository ppa:deadsnakes/ppa

其他依赖

  • 执行如下命令
    sudo apt-get install libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libdc1394-22-dev libeigen3-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev sphinx-common libtbb-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenexr-dev libgstreamer-plugins-base1.0-dev libavutil-dev libavfilter-dev libavresample-dev
  • 如果提示找不到libfaac-dev软件包
1
2
3
sudo apt-add-repository "deb http://us.archive.ubuntu.com/ubuntu trusty main multiverse"
sudo apt update
sudo apt install libjasper1 libjasper-dev
  • 如果提示找不到libjasper-dev软件包
1
2
3
sudo apt-add-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

下载OpenCV源码

  • 进入你要下载的目标目录
  • 使用git下载
1
2
git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
  • 也可以直接到github下载,网址跟用git下载的网址一样

构建和安装OpenCV

  • 创建release目录
1
2
3
cd opencv
mkdir release
cd release

  • 终端执行如下命令
  • 注意最后一句path路径要改为自己电脑对应文件的目录
1
cmake -D BUILD_TIFF=ON -D WITH_CUDA=OFF -D ENABLE_AVX=OFF -D WITH_OPENGL=OFF -D WITH_OPENCL=OFF -D WITH_IPP=OFF -D WITH_TBB=ON -D BUILD_TBB=ON -D WITH_EIGEN=OFF -D WITH_V4L=OFF -D WITH_VTK=OFF -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D OPENCV_GENERATE_PKGCONFIG=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=<opencv_contrib/modules>  <opencv/>
  • 完成cmake的配置后,利用make指令进行编译,多线程进行
    make -j4
  • 出现报错fatal error: boostdesc_bgm.i: 没有那个文件或目录解决方法见后文。
  • 然后安装sudo make install
  • 配置 sudo ldconfig
  • 回到主目录cd

检验安装

  • pkg-config --modversion opencv
  • 如果报错 pakage opencv not found
  • 解决方法
  • Find & Set “opencv.pc” file path
1
2
3
4
apt-file search opencv.pc
ls /usr/local/lib/pkgconfig/
sudo cp /usr/local/lib/pkgconfig/opencv4.pc  /usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc
pkg-config --modversion opencv

在这里插入图片描述
在这里插入图片描述

报错fatal error: boostdesc_bgm.i: 没有那个文件或目录解决方法

  • 参考博客编译OpenCV提示opencv_contrib缺少boostdesc_bgm.i等文件
  • opencv_contrib库里的issues中有提到这个问题,https://github.com/opencv/opencv_contrib/issues/1301,有人提供了缺失的各个文件的链接,直接在这个网页里搜索 BenbenIO 这个用户的回答,或者到本文提供的下载镜像去下载:boostdesc_bgm.i,vgg_generated_48.i等.rar
  • 下载后,直接拷贝源码并生存同名文件,放在 opencv_contrib/modules/xfeatures2d/src/ 路径下即可。