Ubuntu16.04+OpenCV4.1.1编译安装

在Ubuntu 16.04 LTS下编译安装OpenCV 4.1.1

  • 一、安装前的准备
  • 二、 编译并安装OpenCV 4.1.1

这是第一次写博客,主要参考了两篇博客:
https://www.cnblogs.com/laizhenghong2012/p/11329916.html

https://blog.csdn.net/qq_33591712/article/details/84757017

一、安装前的准备

(1)一台Ubuntu 16.04 LTS操作系统,建议选择速度较快的国内更新源并且更新系统,推荐国内的阿里云或者清华,下图选择的是阿里云
Ubuntu16.04+OpenCV4.1.1编译安装_第1张图片

sudo apt-get update
sudo apt-get upgrade

  1. sudo apt-get update
    这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。 我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。
  2. sudo apt-get upgrad
    这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。如果你的软件都是最新版本,会提示:升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
    总而言之,update是更新软件列表,upgrade是更新软件。

(2)安装最新版本的cmake-gui,进入https://cmake.org/download/下载最新版本的cmake源代码Ubuntu16.04+OpenCV4.1.1编译安装_第2张图片
解压:

tar -zxvf cmake-3.16.0.tar.gz

先安装cmake(Ubuntu软件库中的旧版cmake)

sudo apt-get install cmake

编译并安装最新版本cmake,按步运行

cd cmake-3.15.2/
mkdir build
cd build
cmake ..
make
sudo make install

cmake源码安装之后是没有GUI的,要安装cmake-gui,还需要安装cmake-qt-gui

sudo apt-get install cmake-qt-gui

下载OpenCV 4.1.1的源代码和对应4.1.1版本的opencv_contrib-4.1.1源代码

Ubuntu16.04+OpenCV4.1.1编译安装_第3张图片
Ubuntu16.04+OpenCV4.1.1编译安装_第4张图片

二、 编译并安装OpenCV 4.1.1

(1)安装OpenCV依赖项

sudo apt-get install build-essential

#OpenCV官网中安装的是旧版本的libgtk2.0-dev,这里我们安装新版本的libgtk-3-dev
sudo apt-get install git libgtk-3-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

#OpenCV官网中安装2.7版本的python-dev和python-numpy,这里我们安装python 3版本的python3-dev和python3-numpy
sudo apt-get install python3-dev python3-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

(2)解压:

tar -zxvf opencv-4.1.1.tar.gz
tar -zxvf opencv_contrib-4.1.1.tar.gz

(3)使用cmake-gui生成makefile在OpenCV-4.1.1中建立build目录

cd opencv-4.1.1/
mkdir build

Ubuntu16.04+OpenCV4.1.1编译安装_第5张图片
(4)打开cmake-gui,设定source code目录为 /home/onetism/opencv-4.1.1/
onetism是用户名,每个电脑设置不一样,选择自己的即可。
设定binaries目录为刚才新建的build目录,也就是/home/onetism/opencv-4.1.1/build

在这里插入图片描述
(5)OpenCV默认生成的python版本是python 2.7,为了让OpenCV编译生成python 3版本的opencv_python3,需要添加一个编译选项。在cmake-gui当中,点击Add Entry,如下图所示,填入编译选项名字PYTHON_DEFAULT_EXECUTABLE和系统中python 3的路径/usr/bin/python3.5(依实际情况而定)即可。
Ubuntu16.04+OpenCV4.1.1编译安装_第6张图片
(6)完成以后点击configure,按默认操作即可,等待完成,然后进行编译配置,将OPENCV_GENERATE_PKGCONFIG打开,新版本的OpenCV默认把这个编译选项给关掉了!如果该选项没有打开,pkg-config就没法使用了。这样,你想在命令行里直接编译opencv程序会是很痛苦的事情,只能借助CMake解决。
Ubuntu16.04+OpenCV4.1.1编译安装_第7张图片
(7)为了编译opencv_contrib,需要在cmake-gui中将编译选项OPENCV_EXTRA_MODULES_PATH填入contrib库所在的路径,比如/home/your-name/opencv_contrib-4.1.1/modules/
Ubuntu16.04+OpenCV4.1.1编译安装_第8张图片(8)做好将Python 2取消,因为本次安装的是Python 3

(9)编译安装OpenCV生成Makefile之后,进入/home/onetism/opencv-4.1.1/build,编译并安装。然后是漫长的等待过程。

make -j4
sudo make install

make -j
  用make -j带一个参数,可以把项目在进行并行编译,比如在一台双核的机器上,完全可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。

(10)验证:验证pkg-config功能是否正确,回到主目录

pkg-config --cflags --libs opencv4

Ubuntu16.04+OpenCV4.1.1编译安装_第9张图片

(11)验证opencv_python3是否正确安装
Ubuntu16.04+OpenCV4.1.1编译安装_第10张图片
安装之前我己经安装过了ROS系统,而ROS系统使用的Python 2.7,因此导致import cv2报出如下错误
Ubuntu16.04+OpenCV4.1.1编译安装_第11张图片

解决方法是ROS系统中的给cv2.so改个名字,或者参考论坛其他方法After install ROS Kinetic, cannot import OpenCV

cd /opt/ros/kinetic/lib/python2.7/dist-packages/

sudo mv cv2.so cv2_ros.so

(12)配置环境变量

sudo vim ~/.bashrc

在最后行添加export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig,保存退出
Ubuntu16.04+OpenCV4.1.1编译安装_第12张图片

至此基本完成,不知还有什么问题没有,测试还没做,后续再更新。

你可能感兴趣的:(视觉SLAM)