ubuntu18 安装opencv4.2 + opencv4.2_contrib

  1. 安装依赖

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

注意:安装过程中可能遇到:无法定位软件包libjasper-dev的的情况,解决方法。
查阅资料后找到解决方法如下(https://blog.csdn.net/weixin_41053564/article/details/81254410)

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

再次执行下面命令:

sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

 

2.  下载opencv4.2和对应的版本opencv_contrib4.2

OpenCv:https://opencv.org/releases/
OpenCv_Contrib: https://github.com/opencv/opencv_contrib/releases

下载好以后,将两个压缩文件解压(提取到…)安装目录。
(我这里分别将OpenCV和OpenCV_Contrib的文件名的版本号去掉,将opencv_contrib复制到opencv文件夹下。)

 

3. opencv4.2 的安装

网上大部分opencv的教程都是基于opencv2 opencv3的,在opencv4下会出现没有Pkg-config支持的情况

比较扯淡的是,是opencv官方主动删去pkg-config 支持的,但是官方样例中依然使用pkg-config 进行编译。

因此,如果你也在使用g++手动编译,或者使用Makefile的话,安装时加入pkg-config 支持是非常必要的。
安装步骤

注意在 cmake 这一步要加上OPENCV_GENERATE_PKGCONFIG=ON 不然没有pkg-config 支持会很痛苦

    cd opencv
    mkdir build
    cd build
    cmake -D CMAKE_BUILD_TYPE=Release
        -D CMAKE_INSTALL_PREFIX=/usr/local
        -D OPENCV_GENERATE_PKGCONFIG=ON  
        -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..
    make -j8
    sudo make install

 

4. 配置环境:添加路径,修改配置。

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

在末尾添加如下内容:

/usr/local/lib

保存之后,执行下面指令生效。

sudo ldconfig

再次修改:

sudo gedit /etc/bash.bashrc

在末尾添加如下内容:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

source一下,才能生效。

source /etc/bash.bashrc

 

5.测试是否安装成功:

进入opencv/samples/cpp目录下,有一个opencv自带的例子。

cd ../samples/cpp/example_cmake
cmake .
make
./opencv_example

打开摄像头,并且出现Hello OpenCV,即安装成功。

 

 

问题:

1.

编译OpenCV提示opencv_contrib缺少boostdesc_bgm.i等文件

解决方法:

参考:https://www.cnblogs.com/arxive/p/11778731.html

查看 build 文件夹下的日志文件 CMakeDownloadLog.txt,在日志文件CMakeDownloadLog.txt中搜索 boostdesc_bgm.i 关键词。日志文件里就有它的下载地址,到指定位置下载即可。https://github.com/opencv/opencv_contrib/issues/1301,点开上面这个网址往下拉,有人提供了缺失的各个文件的链接,点击保存. 或者直接在这个网页里搜索 BenbenIO 这个用户的回答。

或者到本文提供的下载镜像去下载:boostdesc_bgm.i,vgg_generated_48.i等.rar

下载后,直接拷贝源码并生存同名文件,放在 opencv_contrib/modules/xfeatures2d/src/ 路径下即可。

 

2. 在make的时候出现如下问题:

fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory

解决方法如下:

将opencv-4.1.0/modules/features2d/test/文件下的


    test_descriptors_invariance.impl.hpp

    test_descriptors_regression.impl.hpp

    test_detectors_invariance.impl.hpp

    test_detectors_regression.impl.hpp

    test_invariance_utils.hpp

拷贝到opencv_contrib-4.1.0/modules/xfeatures2d/test/文件下。

同时,将opencv_contrib-4.1.0/modules/xfeatures2d/test/test_features2d.cpp文件下的

#include "features2d/test/test_detectors_regression.impl.hpp"

#include "features2d/test/test_descriptors_regression.impl.hpp"

 

改成:

#include "test_detectors_regression.impl.hpp"

#include "test_descriptors_regression.impl.hpp"

将opencv_contrib-4.1.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp文件下的

#include "features2d/test/test_detectors_invariance.impl.hpp" 

#include "features2d/test/test_descriptors_invariance.impl.hpp"

改成:

#include "test_detectors_invariance.impl.hpp"

#include "test_descriptors_invariance.impl.hpp"

 


 

你可能感兴趣的:(opencv)