在 Ubuntu 系统中安装 OpenCV—Python

目标

在本教程中,我们将学习如何在 Ubuntu 系统中安装 OpenCV-Python。以下步骤针对 Ubuntu 16.04(64 位)和 Ubuntu 14.04(32 位)进行了测试。

在 Ubuntu 中,可以通过两种方式安装 OpenCV-Python:

  • 直接使用 Ubuntu 软件库中编译好的二进制文件进行安装
  • 从源码编译安装

本章将介绍这两种安装方式。另外,要用到几个第三方库。虽然,OpenCV-Python 仅仅需要 Numpy(除了其他依赖库,我们稍后会说),但是,在本教程中,我们还会使用 Matplotlib 进行一些简单而美观的绘图(我觉得要比 OpenCV 好很多)。 虽然 Matplotlib 不是必选的,但我们强烈推荐安装。同样的,我们也强烈推荐安装 IPython ,一个交互式 Python 终端。

二进制方式安装 OpenCV-Python

当仅用于编程和开发 OpenCV 应用程序时,此方案最为合适。

使用终端中的以下命令安装 python-opencv(以 root 用户身份)。

  1. $$ sudo apt-get install python-opencv

打开 Python IDLE(或 IPython)并在 Python 终端中键入以下命令。

  1. import cv2 as cv
  2. print(cv.__version__)

如果没有打印任何错误,恭喜!你已成功安装 OpenCV-Python。

这种方法虽然简单,但是有个问题。apt 软件库并非总是含有最新版本的 OpenCV。举例来说,写本教程的时候,apt 软件库中的版本是 2.4.8,而最新的 OpenCV 版本是 3.x。对于 Python API,最新版本始终有着更好的支持和最少的 bug。

因此,如果想要获得最新的代码,最好选择下一种方案,即从源码编译安装。另外,如果你某个时候想要给 OpenCV 贡献代码,你也需要这么做。

从源码中编译 OpenCV

刚开始的时候,从源代码编译可能看起来有点小复杂,但是一旦你成功了,就没有什么复杂的了。

首先,我们将安装一些依赖库。有些是必需的,有些是可选的。如果不需要,可以跳过可选的依赖库。

必需的依赖库

首先,我们需要用 CMake 来配置安装,用 GCC 来编译,用 Python-develNumpy 来构建 Python 绑定,等等。

  1. sudo apt-get install cmake
  2. sudo apt-get install python-devel numpy
  3. sudo apt-get install gcc gcc-c++

接下来,我们需要 GTK 库支持 GUI 功能,需要 v4l 库支持相机功能,需要 ffmpeg 库和 gstreamer 库支持媒体功能,等等。

  1. sudo apt-get install gtk2-devel
  2. sudo apt-get install ffmpeg-devel
  3. sudo apt-get install gstreamer-plugins-base-devel

可选的依赖库

上面的依赖库已经足以让你在 Ubuntu 系统上安装 OpenCV。但是,根据你的需求,你可能还要装一些额外的库。下面给出了一个可选依赖库的列表。装或不装,由你决定 :)

OpenCV 自带了 PNG,JPEG,JPEG2000,TIFF,WebP 等图像格式的支持库,但它们可能有点老。如果你想要最新的库,你可以自己安装它们。

  1. sudo apt-get install libpng-devel
  2. sudo apt-get install libjpeg-turbo-devel
  3. sudo apt-get install jasper-devel
  4. sudo apt-get install openexr-devel
  5. sudo apt-get install libtiff-devel
  6. sudo apt-get install libwebp-devel

下载 OpenCV

从 OpenCV 的GitHub 存储库下载最新的源代码。(如果你想为 OpenCV 做贡献,请这么做。为此,你需要先安装 Git)

  1. $$ sudo apt-get install git
  2. $$ git clone https://github.com/opencv/opencv.git

上面的操作将在你的当前目录下创建一个 opencv 文件夹。clone 可能要花一些时间,具体取决于你的网络延迟。

现在,打开一个终端窗口,并进入刚下的“opencv”文件夹。创建一个“build”文件夹,进入“build”。

  1. $$ mkdir build
  2. $$ cd build

配置和安装

现在,我们已安装好了所有的依赖库,让我们开始安装 OpenCV。必须使用 CMake 配置安装。它指定了要安装哪些模块,安装路径,要使用的其他库,以及是否需要编译文档和示例等。默认参数已配置好,大部分工作都可以自动化完成。

下面的命令通常用于配置 OpenCV 库编译(在 build 文件夹里执行):

  1. $$ cmake ../

OpenCV 默认采用“Release”构建类型,安装路径为“/usr/local”。有关 CMake 选项的其他信息,请参阅 OpenCV C++编译指南

您应该能在 CMake 输出信息中看到这些行(这些意味着已正确安装了 Python):

  1. -- Python 2:
  2. -- Interpreter: /usr/bin/python2.7 (ver 2.7.6)
  3. -- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
  4. -- numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
  5. -- packages path: lib/python2.7/dist-packages
  6. --
  7. -- Python 3:
  8. -- Interpreter: /usr/bin/python3.4 (ver 3.4.3)
  9. -- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
  10. -- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2)
  11. -- packages path: lib/python3.4/dist-packages

现在,使用“make”命令编译文件,使用“make install”来安装。

  1. $$ make
  2. # sudo make install

安装完成后,所有文件都在“/usr/local/”目录。打开终端,并导入 cv2。

  1. import cv2 as cv
  2. print(cv.__version__)