Ubuntu18.04+opencv3.4.3+opencv_contrib(快速下载、安装、编译、解决surf、sift等问题)

一、快速下载

1.opencv各版本下载列表

2.opencv_contrib百度云下载

解释一下opencv_contrib里面有opencv3的扩展(比如surf、sift),也是opencv2和opencv3的区别.所以opencv3.x.x和opencv_contrib有必要都编译一下。

二、安装依赖

首先,更新软件源,更新本地安装包(在此之前建议软件源software&&updates下载路径设置为阿里云):

sudo apt-get update

sudo apt-get upgrade

看过好多博客依赖有好多,重复的也很多,本人安装依赖如下:

sudo apt-get install build-essential cmake git pkg-config

sudo apt-get install libjpeg8-dev

sudo apt-get install libtiff5-dev

sudo apt-get install libjasper-dev      //此处可能会报错,自行百度,不难

sudo apt-get install libpng12-dev

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

sudo apt-get install libgtk2.0-dev

sudo apt-get install libatlas-base-dev gfortran

sudo apt-get install python-dev python3-dev

三、编译

编译前准备:

解压opencv-3.4.3和opencv_contrib-3.4.3压缩包(本人的版本是这样,其他的一样)。

进入opencv-3.4.3文件夹:

cd opencv-3.4.3

在opencv-3.4.3文件夹里新建一个文件夹,本人命名release,用来存放cmake编译时产生的临时文件。接着cd进入release:

mkdir release
cd release

下面的编译咋说捏,最好根据自己的需求搞得全乎一点,每次用到opencv有关的新东西我都会重新补全编译一次,接下来是我目前的操作。

重点来了!!

设置cmake编译参数,安装目录默认为/usr/local ,注意参数名、等号和参数值之间不能有空格,但每行末尾“\”之前有空格,参数值最后是两个英文的点(注意!如果在root用户下执行cmake命令,请将OPENCV_EXTRA_MODULES_PATH的值改为绝对路径,如:/home/joeya/opencv_contrib-3.4.3/modules):

    /** CMAKE_BUILD_TYPE是编译方式
    * CMAKE_INSTALL_PREFIX是安装目录
    * OPENCV_EXTRA_MODULES_PATH是加载额外模块,这里联系到opencv_contrib-3.4.3
    * INSTALL_PYTHON_EXAMPLES是安装官方python例程
    * INSTALL_C_EXAMPLES是安装官方C/C++例程
    * OPENCV_ENABLE_NONFREE:BOOL=ON 编译nonfree(surf,sift会用到)
    * BUILD_opencv_world:BOOL=ON 编译world
    * BUILD_EXAMPLES是编译例程
    **/

    sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
        -D CMAKE_INSTALL_PREFIX=/usr/local \
        -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules \
        -D INSTALL_PYTHON_EXAMPLES=ON \
        -D INSTALL_C_EXAMPLES=ON \
        -D OPENCV_ENABLE_NONFREE:BOOL=ON \
        -D BUILD_opencv_world:BOOL=ON \
        -D BUILD_EXAMPLES=ON .. \

 漫长等待~ippicv处很慢

正式编译:

保证终端在release文件夹中执行,然后:

/** 编译,以管理员身份,否则容易出错
* make命令参数-j12指允许make使用最多12个线程进行编译,这样更快,具体数字看电脑线程最高配置,一般4,8,12
* 所以可以根据自己机器的情况进行更改
**/

sudo make -j12

// 安装
sudo make install

// 更新动态链接库
sudo ldconfig

 四、配置环境变量

  •  将OPenCV的库添加到路径,从而可以让系统找到

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

  • 执行此命令后打开的可能是一个空白文档,这个不需要管,只需要将一下语句加入(非空加在最后一行下面)即可

 /usr/local/lib

  • 执行下面的命令,使得刚才配置的路径生效

 sudo ldconfig

  • 配置bash

 sudo gedit /etc/bash.bashrc

  • 在打开的文件最后换行添加以下命令

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

  • 保存,执行以下命令使得配置生效

source /etc/bash.bashrc

  • 最后进行更新

sudo updatedb

完事儿,自己找网上测试用例测试一下就好~

你可能感兴趣的:(linux操作系统,opencv,opencv_contrib)