在本教程中,我们将学习如何在Ubuntu系统中设置OpenCV-Python。下面的步骤是针对Ubuntu 16.04和18.04(都是64位)的测试。
OpenCV-Python可以通过两种方式安装在Ubuntu中。
这种方法在只用于编程和开发OpenCV应用程序时效果最好。
用下面的命令在终端安装python3-opencv包(以root用户身份)。
$ sudo apt-get install python3-opencv
打开Python IDLE(或IPython),在Python终端输入以下代码。
import cv2 as cv
print(cv.__version__)
如果打印出来的结果没有任何错误,恭喜你!!!你已经安装了OpenCV-Python。你已经成功地安装了OpenCV-Python。
这是很容易的。但是这里面有一个问题。Apt软件库可能并不总是包含最新版本的OpenCV。例如,在写这个教程的时候,apt资源库包含2.4.8,而最新的OpenCV版本是3.x。
所以要获得最新的源代码,最好是采用下一个方法,即从源代码中编译。另外,在某些时候,如果你想为OpenCV做贡献,你会需要这个。
从源码编译一开始可能有点复杂,但一旦你成功了,就没有什么复杂的了。
首先,我们要安装一些依赖项。有些是必须的,有些是可选的。如果你不愿意,你可以跳过可选的依赖。
我们需要CMake来配置安装,GCC来编译,Python-devel和Numpy来构建Python绑定等等。
sudo apt-get install cmake
sudo apt-get install gcc g++
以支持Python2。
sudo apt-get install python-dev python-numpy
以支持Python3。
sudo apt-get install python3-dev python3-numpy
接下来我们需要GTK支持GUI功能,相机支持(v4l),媒体支持(ffmpeg,gstreamer)等。
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
以支持gtk2。
sudo apt-get install libgtk2.0-dev
以支持gtk3。
sudo apt-get install libgtk-3-dev
以上的依赖性足以在你的Ubuntu机器上安装OpenCV。但是根据你的要求,你可能需要一些额外的依赖。下面给出了这些可选依赖项的清单。你可以不安装它,也可以安装它,你自己决定
OpenCV带有支持图像格式的文件,如PNG、JPEG、JPEG2000、TIFF、WebP等。但它可能有点旧。如果你想获得最新的库,你可以安装这些格式的系统库的开发文件。
sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libtiff-dev
sudo apt-get install libwebp-dev
注意
如果你使用的是Ubuntu 16.04,你也可以安装libjasper-dev
来增加对JPEG2000格式的系统级支持。
从OpenCV的GitHub仓库下载最新的源代码。(如果你想为OpenCV做贡献,请选择这个。为此,你需要先安装Git)
$ sudo apt-get install git
$ git clone https://github.com/opencv/opencv.git
它将在当前目录下创建一个文件夹 “opencv”。克隆可能需要一些时间,这取决于你的网络连接情况。
现在打开一个终端窗口,导航到下载的 "opencv "文件夹。创建一个新的 "build "文件夹并导航到它。
$ mkdir build
$ cd build
现在我们有了所有需要的依赖,让我们来安装OpenCV。安装必须用CMake进行配置。它指定要安装哪些模块,安装路径,要使用哪些额外的库,是否要编译文档和例子等等。这些工作大部分都是通过配置好的默认参数自动完成的。
以下命令通常用于配置OpenCV库的构建(从构建文件夹中执行)。
$ 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__)