OpenCV  4.10.0
开源计算机视觉库
正在加载...
正在搜索...
没有匹配项
在 Fedora 上安装 OpenCV-Python

目标

在本教程中

  • 我们将学习如何在 Fedora 系统中设置 OpenCV-Python。以下步骤已在 Fedora 18 (64 位) 和 Fedora 19 (32 位) 上测试。

简介

OpenCV-Python 可以通过两种方式在 Fedora 中安装:1) 从 Fedora 存储库中安装预构建的二进制文件,2) 从源代码编译。在本节中,我们将介绍这两种方法。

另一个重要的事情是所需的其他库。OpenCV-Python 仅需要 Numpy(除了其他依赖项,我们将在稍后介绍)。但在本教程中,我们还使用 Matplotlib 来进行一些简单且美观的绘图(我觉得比 OpenCV 好得多)。Matplotlib 是可选的,但强烈推荐。同样,我们还将看到 IPython,一个交互式 Python 终端,也非常推荐。

从预构建的二进制文件安装 OpenCV-Python

以 root 身份在终端中使用以下命令安装所有软件包。

$ yum install numpy opencv*

打开 Python IDLE(或 IPython)并在 Python 终端中输入以下代码。

>>> import cv2 as cv
>>> print( cv.__version__ )

如果结果在没有错误的情况下打印出来,恭喜您!您已成功安装 OpenCV-Python。

这很简单。但这存在一个问题。Yum 存储库可能并不总是包含最新版本的 OpenCV。例如,在编写本教程时,yum 存储库包含 2.4.5,而最新版本的 OpenCV 是 2.4.6。在 Python API 方面,最新版本总是会提供更好的支持。此外,还可能出现摄像头支持、视频播放等问题,具体取决于驱动程序、ffmpeg、gstreamer 软件包的存在等。

因此,我个人更喜欢下一种方法,即从源代码编译。此外,如果您将来想为 OpenCV 贡献代码,就需要这样做。

从源代码安装 OpenCV

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

首先,我们将安装一些依赖项。有些是必需的,有些是可选的。可选依赖项可以根据您的需要选择是否安装。

必需依赖项

我们需要 CMake 来配置安装,GCC 来编译,Python-develNumpy 来创建 Python 扩展等。

yum install cmake
yum install python-devel numpy
yum install gcc gcc-c++

接下来,我们需要 GTK 支持 GUI 功能、摄像头支持 (libdc1394, v4l)、媒体支持 (ffmpeg, gstreamer) 等。

yum install gtk2-devel
yum install libdc1394-devel
yum install ffmpeg-devel
yum install gstreamer-plugins-base-devel

可选依赖项

以上依赖项足以在您的 Fedora 机器上安装 OpenCV。但根据您的需求,您可能需要一些额外的依赖项。下面列出了这些可选依赖项。您可以选择安装或不安装,由您决定!

OpenCV 附带支持 PNG、JPEG、JPEG2000、TIFF、WebP 等图像格式的支持文件。但这些文件可能有点旧。如果您想获取最新的库,可以安装这些格式的开发文件。

yum install libpng-devel
yum install libjpeg-turbo-devel
yum install jasper-devel
yum install openexr-devel
yum install libtiff-devel
yum install libwebp-devel

许多 OpenCV 函数使用 英特尔的线程构建块 (TBB) 进行并行化。但如果您想启用它,需要先安装 TBB。(在使用 CMake 配置安装时,不要忘记传递 -D WITH_TBB=ON。更多详细信息见下文。)

yum install tbb-devel

OpenCV 使用另一个库 Eigen 来进行优化的数学运算。因此,如果您在系统中安装了 Eigen,就可以利用它。(在使用 CMake 配置安装时,不要忘记传递 -D WITH_EIGEN=ON。更多详细信息见下文。)

yum install eigen3-devel

如果您想构建 文档是的,您可以在系统中创建 OpenCV 完整官方文档的离线版本,以 HTML 格式,并提供完整的搜索功能,这样您在遇到问题时就不必总是访问互联网,而且速度非常快!),您需要安装 Doxygen(一个文档生成工具)。

yum install doxygen

下载 OpenCV

接下来,我们需要下载 OpenCV。您可以从 sourceforge 网站 下载最新版本的 OpenCV。然后解压文件夹。

或者,您可以从 OpenCV 的 github 仓库下载最新的源代码。(如果您想为 OpenCV 贡献代码,请选择此方法。它会始终使您的 OpenCV 保持最新)。为此,您需要先安装 Git

yum install git
git clone https://github.com/opencv/opencv.git

它将在主目录(或您指定的目录)中创建一个名为 OpenCV 的文件夹。克隆过程可能需要一些时间,具体取决于您的互联网连接。

现在,打开一个终端窗口并导航到已下载的 OpenCV 文件夹。创建一个新的 build 文件夹并导航到该文件夹。

mkdir build
cd build

配置和安装

现在我们已经安装了所有必要的依赖项,让我们安装 OpenCV。安装需要使用 CMake 进行配置。它指定要安装哪些模块、安装路径、要使用的其他库、是否编译文档和示例等。以下命令通常用于配置(在 build 文件夹中执行)。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

它指定构建类型为“发布模式”,安装路径为 /usr/local。请注意每个选项前面的 -D 以及末尾的 ..。简而言之,格式为

cmake [-D <flag>] [-D <flag>] ..

您可以指定任意数量的标志,但每个标志都应以 -D 开头。

因此,在本教程中,我们使用 TBB 和 Eigen 支持安装 OpenCV。我们还构建了文档,但排除了性能测试和构建示例。我们还禁用了 GPU 相关模块(因为我们使用 OpenCV-Python,所以不需要 GPU 相关模块。这可以节省一些时间)。

*(所有以下命令都可以放在一个 cmake 语句中,但为了便于理解,这里将其拆分了。)*

  • 启用 TBB 和 Eigen 支持
    cmake -D WITH_TBB=ON -D WITH_EIGEN=ON ..
  • 启用文档并禁用测试和示例
    cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF ..
  • 禁用所有 GPU 相关模块。
    cmake -D WITH_OPENCL=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF -D BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF -D BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF -D BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF -D BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF ..
  • 设置安装路径和构建类型
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
    每次输入 cmake 语句时,它都会打印出生成的配置设置。在最终得到的设置中,请确保以下字段已填写(以下是我的配置中的一些重要部分)。这些字段在您的系统中也应该适当地填写。否则,会出现一些问题。因此,请检查您是否正确地执行了上述步骤。
    ...
    -- GUI
    -- GTK+ 2.x: YES (ver 2.24.19)
    -- GThread : YES (ver 2.36.3)
    -- Video I/O
    -- DC1394 2.x: YES (ver 2.2.0)
    -- FFMPEG: YES
    -- codec: YES (ver 54.92.100)
    -- format: YES (ver 54.63.104)
    -- util: YES (ver 52.18.100)
    -- swscale: YES (ver 2.2.100)
    -- gentoo-style: YES
    -- GStreamer
    -- base: YES (ver 0.10.36)
    -- video: YES (ver 0.10.36)
    -- app: YES (ver 0.10.36)
    -- riff: YES (ver 0.10.36)
    -- pbutils: YES (ver 0.10.36)
    -- V4L/V4L2: 使用 libv4l (ver 1.0.0)
    -- 其他第三方库
    -- 使用 Eigen: YES (ver 3.1.4)
    -- 使用 TBB: YES (ver 4.0 接口 6004)
    -- Python
    -- 解释器: /usr/bin/python2 (ver 2.7.5)
    -- 库: /lib/libpython2.7.so (ver 2.7.5)
    -- numpy: /usr/lib/python2.7/site-packages/numpy/core/include (ver 1.7.1)
    -- 包路径: lib/python2.7/site-packages
    ...
    还有许多其他标志和设置。您可以进一步探索。

现在,您可以使用 make 命令构建文件,并使用 make install 命令安装它。make install 应以 root 身份执行。

make
su
make install

安装完成。所有文件都安装在 /usr/local/ 文件夹中。但要使用它,您的 Python 应该能够找到 OpenCV 模块。您有两个选择。

  1. 将模块移动到 Python 路径中的任何文件夹:可以在 Python 终端中输入 import sys; print(sys.path) 来找到 Python 路径。它会打印出许多位置。将 /usr/local/lib/python2.7/site-packages/cv2.so 移动到这些文件夹中的任何一个。例如,
    su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/site-packages
    但是,您每次安装 OpenCV 时都必须这样做。
  2. 将 /usr/local/lib/python2.7/site-packages 添加到 PYTHON_PATH:只需要做一次。打开 .bashrc 文件并添加以下行,然后注销并重新登录。
    export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
    这样,OpenCV 安装就完成了。打开一个终端并尝试“import cv2 as cv”。

要构建文档,只需输入以下命令

make doxygen

然后,打开 opencv/build/doc/doxygen/html/index.html 并将其书签添加到浏览器中。

附加资源

练习

  1. 在您的 Fedora 机器上从源代码编译 OpenCV。