不同版本的Ubuntu安装对应的opencv+opencv_contrib

Ubuntu20.04安装opencv4.5.5+opencv_contrib4.5.5

  • Ubuntu20.04安装opencv 视频教程链接:BiliBili

Python安装方式

sudo apt update
sudo apt install libopencv-dev python3-opencv

导入cv2模块并打印版本

python3 -c "import cv2; print(cv2.__version__)"

输出

4.2.0

从源码安装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 libopenexr-dev \
    libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

克隆OpenCVOpenCV_contrib源(速度慢可以用代理)

新建文件夹名称为opencv_build,不然可能报错。

mkdir ~/opencv_build && cd ~/opencv_build
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git

进入opencv文件夹并新建build文件夹并切入

cd ~/opencv_build/opencv
mkdir -p build && cd build

使用 CMake命令配置 OpenCV构建(PATH 设置为自己的目录)

cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D INSTALL_C_EXAMPLES=ON \
    -D INSTALL_PYTHON_EXAMPLES=ON \
    -D OPENCV_GENERATE_PKGCONFIG=ON \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \
    -D BUILD_EXAMPLES=ON ..
  • 报错处理
    • 出现报错fatal error: boostdesc_bgm.i: 没有那个文件或目录的解决方法。
    • 编译OpenCV提示opencv_contrib缺少boostdesc_bgm.i等文件的解决方法。
      需要将test_detectors_invariance.impl.hpp
      复制到opencv_contrib/modules/xfeatures2d/test/
  • 以上错误所需的.i文件可在百度网盘进行下载
    提取码:b0kc

输出将会如下,则成功

-- Configuring done
-- Generating done
-- Build files have been written to: /home/vagrant/opencv_build/opencv/build

开始编译

make -j16

根据你的处理器修改-f值。如果你不知道你的处理器核心数,你可以输入nproc找到。

安装

sudo make install

查看版本

pkg-config --modversion opencv4

总结

报错方式可能会有所不同,不妨把所有的报错解决方案都试一下,总归有一个是你所需要的。
在你感到绝望的时候,不要放弃,坚持再坚持,相信自己一定可以的。

Ubuntu18.04安装opencv3.4.5+opencv_contrib3.4.5

安装包下载

  • 注意opencv与opencv_contrib的版本应该一致

    opencv下载:opencv官网

    opencv_contrib下载:GitHub

    不同版本的Ubuntu安装对应的opencv+opencv_contrib_第1张图片

    不同版本的Ubuntu安装对应的opencv+opencv_contrib_第2张图片

    这里需要下载opencv的source,opencv_contrib可以下载zip或者tar.gz,但本文下载的是zip

    以上两个文件已整理到百度网盘

    提取码:jdic

安装依赖包

sudo apt-get update
sudo apt-get upgrade
//依赖包
sudo apt-get install build-essential  
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev  
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev  
sudo apt-get install qt5-default ccache libv4l-dev libavresample-dev  libgphoto2-dev libopenblas-base libopenblas-dev doxygen  openjdk-8-jdk pylint libvtk6-dev
sudo apt-get install pkg-config

可能会遇到的问题:

  • 其中可能会遇到无法安装libjasper-dev的问题,类似下面的页面

    XXX@XXX:~/Files/opencv-3.1.0$sudo apt-get install libjasper-dev
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    E: Unable to locate package libjasper-dev
    
  • 解决方案

    sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
    sudo apt update
    sudo apt install libjasper1 libjasper-dev
    

安装opencvopencv_contrib

先解压下载的opencv和opencv_contrib包,建议直接将下载下来的包直接放至home地址下,这样,zip格式的解压代码如下:

sudo unzip opencv-3.4.5.zip
sudo unzip opencv_contrib-3.4.5.zip

tar.gz格式解压代码:

sudo tar zxvf opencv_contrib-3.4.5.tar.gz

然后将解压后的contrib文件移动至opencv-3.4.5文件下

sudo cp -r opencv_contrib-3.4.5 opencv-3.4.5

并在opencv-3.4.5文件夹中新建build文件夹用于后续编译和生成

cd opencv-3.4.5
sudo mkdir build

进入bulid文件夹并进行第一次cmake

cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv-3.4.5/opencv_contrib-3.4.5/modules/ -D OPENCV_ENABLE_NONFREE=True ..

可能遇到的问题

  1. ippicv和face_landmark_model.dat下载失败的解决方案
  • 先下载文件:

    • ippicv 百度网盘 提取码:wjl1
    • face_landmark_model.dat 百度网盘 提取码:wjl1
  • 修改相应文件

    • ippicv.cmake文件下的第47行替换为本地路径

      cd /opencv-3.4.5/3rdparty/ippicv
      sudo vim ippicv.cmake
      
      "改为相应地址" 格式为“file:绝对路径“  #本地路径,与你自己下载存放的地址相关
      #"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"      #原下载地址
      #记得改为本地ippcv的地址
      
    • 更改face_landmark_model配置文件,将CMakeLists.txt文件的第19行修改为本地路径

      cd /opencv-3.4.5/opencv_contrib-3.4.5/modules/face
      sudo vim CMakeLists.txt
      
      "本地地址" 格式为“file:绝对路径“     #本地路径,与你自己下载存放的地址相关
      #"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/"          #原下载地址
      # 记得改为本地face_landmark_model.dat的地址
      
  1. 缺少videodev.h和videoio.h文件

不同版本的Ubuntu安装对应的opencv+opencv_contrib_第3张图片

  • 打开CMakeError.log文件:

    不同版本的Ubuntu安装对应的opencv+opencv_contrib_第4张图片

  • 解决方案:

    在opencv3.4.5目录下,利用可视化界面查找videodev.h和videoio.h这两个文件,复制到相应目录下即可

  1. fatal error: boostdesc_bgm.i: 没有那个文件或目录
  • 出现报错fatal error: boostdesc_bgm.i: 没有那个文件或目录的解决方法。
  • 编译OpenCV提示opencv_contrib缺少boostdesc_bgm.i等文件的解决方法。
    需要将test_detectors_invariance.impl.hpp
    复制到opencv_contrib/modules/xfeatures2d/test/
    • 以上错误所需的.i文件可在百度网盘进行下载
      提取码:b0kc

继续进行cmake

cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv-3.4.5/opencv_contrib-3.4.5/modules/ -D OPENCV_ENABLE_NONFREE=True ..

cmake结束后会生成如下的类似界面

--   Install path:                  /usr/local
-- 
--   cvconfig.h is in:              /home/files/opencv-3.4.5/build
-- -----------------------------------------------------------------
-- 
-- Configuringdone
-- Generating done
-- Build files have been written to: /home/files/opencv-3.4.5/build

进行make

sudo make -j8

可能遇到的问题

  • opencv安装opencv_contrib出现无法打开包括文件: “opencv2/xfeatures2d/cuda.hpp”

    • 解决方法:

      解决办法: 在CMakeLists.txt增加以下内容: INCLUDE_DIRECTORIES("/works/opencv-3.4.0/opencv_contrib-3.4.0/modules/xfeatures2d/include") 
      CMakeLists.txt文件所在路径为: <你的路径>/opencv-3.4.0/modules/stitching/ CMakeLists.txt 
      
  • 继续 make

不同版本的Ubuntu安装对应的opencv+opencv_contrib_第5张图片

  • 只要成功到达100即为成功

    sudo make install
    

配置环境变量

打开文件

sudo gedit /etc/ld.so.conf.d/opencv.conf

在空白文档中添加

/usr/local/lib

接下来配置库

sudo ldconfig

更改环境变量

sudo gedit /etc/bash.bashrc

在文件的最后添加

export PKG_CONFIG_PATH=/usr/local/opencv/lib/pkgconfig 
export LD_LIBRARY_PATH=/usr/local/opencv/lib 

案例展示

c++ 开发案例:链接

你可能感兴趣的:(opencv,ubuntu,计算机视觉,c++)