在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-develNumpy 来构建 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__)

赞(0)
未经允许不得转载:极客笔记 » 在Ubuntu系统中安装OpenCV—Python

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
OpenCV-Python介绍
OpenCV-Python 教程在Windows安装OpenCV-Python在Fedora上安装OpenCV-Python在Ubuntu系统中安装OpenCV—Python
OpenCV-Python GUI功能
OpenCV-Python图像入门OpenCV-Python视频入门OpenCV-Python绘图功能OpenCV-Python鼠标作为画笔OpenCV-Python作为调色板的跟踪栏
OpenCV-Python 核心操作
OpenCV-Python图像基本操作OpenCV-Python图像的算术运算OpenCV-Python性能测量和改进技术
OpenCV-Python 图像处理
OpenCV-Python改变颜色空间OpenCV-Python图像的几何变换OpenCV-Python图像阈值OpenCV-Python平滑图像OpenCV-Python形态转换OpenCV-Python图像梯度OpenCV-Python Canny边缘检测OpenCV-Python图像金字塔OpenCV-Python轮廓入门OpenCV-Python轮廓特征OpenCV-Python轮廓属性OpenCV-Python更多轮廓功能OpenCV-Python轮廓层次结构OpenCV-Python直方图-查找,绘图,分析OpenCV-Python直方图均衡OpenCV-Python 2D直方图OpenCV-Python直方图反投影OpenCV-Python图像转换OpenCV-Python模板匹配OpenCV-Python霍夫线变换OpenCV-Python霍夫圆变换OpenCV-Python基于分水岭算法的图像分割OpenCV-Python基于 GrabCut 算法的交互式前景提取
OpenCV-Python 特征检测
OpenCV-Python理解特征OpenCV-Python Harris 角点检测OpenCV-Python Shi-Tomasi 角点检测和追踪的良好特征OpenCV-Python SIFT 简介(尺度不变特征变换)OpenCV-Python SURF 简介(加速鲁棒特性)OpenCV-Python角点检测的 FAST 算法OpenCV-Python BRIEF(二进制鲁棒独立基本特征)OpenCV-Python ORB算法OpenCV-Python特征匹配OpenCV-Python特征匹配+单应性查找对象
OpenCV-Python 视频分析
OpenCV-Python Meanshift 和 CamshiftOpenCV-Python光流OpenCV-Python背景减法
OpenCV-Python 相机校准和3D重建
OpenCV-Python相机校准OpenCV-Python姿势估计OpenCV-Python线性几何OpenCV-Python立体图像的深度图
OpenCV-Python 机器学习
OpenCV-Python K-最近邻算法OpenCV-Python 使用 kNN 进行手写识别OpenCV-Python 理解 SVMOpenCV-Python 使用 SVM 进行手写数据识别OpenCV-Python 理解 K-Means 聚类OpenCV-Python 中的 K-Means 聚类
OpenCV-Python 计算摄影
OpenCV-Python 图像去噪OpenCV-Python 图像修复OpenCV-Python 高动态范围(HDR)