在 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 用户身份)。
$$ sudo apt-get install python-opencv
打开 Python IDLE(或 IPython)并在 Python 终端中键入以下命令。
import cv2 as cv
print(cv.__version__)
如果没有打印任何错误,恭喜!你已成功安装 OpenCV-Python。
这种方法虽然简单,但是有个问题。apt 软件库并非总是含有最新版本的 OpenCV。举例来说,写本教程的时候,apt 软件库中的版本是 2.4.8,而最新的 OpenCV 版本是 3.x。对于 Python API,最新版本始终有着更好的支持和最少的 bug。
因此,如果想要获得最新的代码,最好选择下一种方案,即从源码编译安装。另外,如果你某个时候想要给 OpenCV 贡献代码,你也需要这么做。
从源码中编译 OpenCV
刚开始的时候,从源代码编译可能看起来有点小复杂,但是一旦你成功了,就没有什么复杂的了。
首先,我们将安装一些依赖库。有些是必需的,有些是可选的。如果不需要,可以跳过可选的依赖库。
必需的依赖库
首先,我们需要用 CMake 来配置安装,用 GCC 来编译,用 Python-devel 和 Numpy 来构建 Python 绑定,等等。
sudo apt-get install cmake
sudo apt-get install python-devel numpy
sudo apt-get install gcc gcc-c++
接下来,我们需要 GTK 库支持 GUI 功能,需要 v4l 库支持相机功能,需要 ffmpeg 库和 gstreamer 库支持媒体功能,等等。
sudo apt-get install gtk2-devel
sudo apt-get install ffmpeg-devel
sudo apt-get install gstreamer-plugins-base-devel
可选的依赖库
上面的依赖库已经足以让你在 Ubuntu 系统上安装 OpenCV。但是,根据你的需求,你可能还要装一些额外的库。下面给出了一个可选依赖库的列表。装或不装,由你决定 :)
OpenCV 自带了 PNG,JPEG,JPEG2000,TIFF,WebP 等图像格式的支持库,但它们可能有点老。如果你想要最新的库,你可以自己安装它们。
sudo apt-get install libpng-devel
sudo apt-get install libjpeg-turbo-devel
sudo apt-get install jasper-devel
sudo apt-get install openexr-devel
sudo apt-get install libtiff-devel
sudo apt-get install libwebp-devel
下载 OpenCV
从 OpenCV 的GitHub 存储库下载最新的源代码。(如果你想为 OpenCV 做贡献,请这么做。为此,你需要先安装 Git)
$$ sudo apt-get install git
$$ git clone https://github.com/opencv/opencv.git
上面的操作将在你的当前目录下创建一个 opencv 文件夹。clone 可能要花一些时间,具体取决于你的网络延迟。
现在,打开一个终端窗口,并进入刚下的“opencv”文件夹。创建一个“build”文件夹,进入“build”。
$$ mkdir build
$$ cd build
配置和安装
现在,我们已安装好了所有的依赖库,让我们开始安装 OpenCV。必须使用 CMake 配置安装。它指定了要安装哪些模块,安装路径,要使用的其他库,以及是否需要编译文档和示例等。默认参数已配置好,大部分工作都可以自动化完成。
下面的命令通常用于配置 OpenCV 库编译(在 build 文件夹里执行):
$$ cmake ../
OpenCV 默认采用“Release”构建类型,安装路径为“/usr/local”。有关 CMake 选项的其他信息,请参阅 OpenCV C++编译指南:
您应该能在 CMake 输出信息中看到这些行(这些意味着已正确安装了 Python):
-- Python 2:
-- Interpreter: /usr/bin/python2.7 (ver 2.7.6)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.6)
-- numpy: /usr/lib/python2.7/dist-packages/numpy/core/include (ver 1.8.2)
-- packages path: lib/python2.7/dist-packages
--
-- Python 3:
-- Interpreter: /usr/bin/python3.4 (ver 3.4.3)
-- Libraries: /usr/lib/x86_64-linux-gnu/libpython3.4m.so (ver 3.4.3)
-- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.8.2)
-- packages path: lib/python3.4/dist-packages
现在,使用“make”命令编译文件,使用“make install”来安装。
$$ make
# sudo make install
安装完成后,所有文件都在“/usr/local/”目录。打开终端,并导入 cv2。
import cv2 as cv
print(cv.__version__)