1.3. 在Fedora中安装OpenCV Python

1.3.1. 目标

在本教程中
-我们将学习在您的Fedora系统中设置OpenCV Python。以下步骤测试Fedora18(64位)和Fedora19(32位)。

1.3.2. 介绍

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

另一件重要的事情是需要额外的库。OpenCV Python只需要 Numpy (除了其他依赖项,我们稍后会看到)。但在本教程中,我们还使用 Matplotlib 为了一些简单而漂亮的绘图目的(与OpenCV相比,我感觉好多了)。Matplotlib是可选的,但强烈建议使用。同样,我们也将看到 IPython ,一个交互式Python终端,这也是强烈推荐的。

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

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

$ yum install numpy opencv*

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

import cv2
print (cv2.__version__)

如果结果打印出来没有任何错误,恭喜!!!您已成功安装OpenCV Python。

这很容易。但这有个问题。Yum存储库不能始终包含最新版本的OpenCV。例如,在编写本教程时,yum repository包含2.4.5,而最新的OpenCV版本是2.4.6。关于Python API,最新版本总是包含更好的支持。此外,根据驱动程序、ffmpeg、gstreamer包的存在等,可能存在摄像机支持、视频回放等方面的问题。

所以我的个人偏好是下一种方法,即从源代码编译。同时,在某个时候,如果你想为OpenCV做贡献,你将需要这个。

1.3.4. 从源代码安装OpenCV

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

首先,我们将安装一些依赖项。有些是必修课,有些是选修课。可选依赖项,如果不需要,可以离开。

强制依赖

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

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

接下来我们需要 GTK 支持图形用户界面功能、摄像头支持(libdc1394、libv4l)、媒体支持(ffmpeg、gstreamer)等。

yum install gtk2-devel
yum install libdc1394-devel
yum install libv4l-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。(在使用CMake配置安装时,不要忘记通过 -D WITH_TBB=ON . 更多细节如下。)

yum install tbb-devel

OpenCV使用另一个库 本征 用于优化数学运算。所以如果你的系统中安装了Eigen,你可以利用它。(在使用CMake配置安装时,不要忘记通过 -D WITH_EIGEN=ON . 更多细节如下。)

yum install eigen3-devel

如果你想建造 文档是的,你可以在你的系统中创建完整的官方文档的离线版本,用HTML和完整的搜索工具,这样你就不必总是访问互联网,如果有任何问题,它是相当快的!!! ),您需要安装 狮身人面像 (文档生成工具)和 平皿 (如果要创建它的PDF版本)。(在使用CMake配置安装时,不要忘记通过 -D BUILD_DOCS=ON . 更多细节如下。)

yum install python-sphinx
yum install texlive

下载OpenCV

接下来我们要下载OpenCV。您可以从 sourceforge site . 然后提取文件夹。

或者您可以从OpenCV的github repo下载最新的源代码。(如果您想为OpenCV做贡献,请选择此选项。它总是让你的OpenCV保持最新)。为此,您需要安装 Git 第一。

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

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

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

mkdir build
cd build

配置和安装

现在我们已经安装了所有必需的依赖项,让我们安装OpenCV。必须使用CMake配置安装。它指定要安装的模块、安装路径、要使用的附加库、要编译的文档和示例等。下面的命令通常用于配置(从 build 文件夹)。

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

它指定生成类型为“发布模式”,安装路径为 /usr/local. Observe the -D before each option and .. 最后。简而言之,这是一种格式:

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

可以指定任意多个标志,但每个标志前面都应加上 -D .

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

(以下所有命令都可以在一个cmake语句中完成,但为了更好地理解,这里将其拆分。)

  • 启用TBB和特征支持:

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 WITH_CUDA=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:                    Using libv4l (ver 1.0.0)
>
> --   Other third-party libraries:
> --     Use Eigen:                   YES (ver 3.1.4)
> --     Use TBB:                     YES (ver 4.0 interface 6004)
>
> --   Python:
> --     Interpreter:                 /usr/bin/python2 (ver 2.7.5)
> --     Libraries:                   /lib/libpython2.7.so (ver 2.7.5)
> --     numpy:                       /usr/lib/python2.7/site-packages/numpy/core/include (ver 1.7.1)
> --     packages path:               lib/python2.7/site-packages
>
> --   Documentation:
> --     Build Documentation:         YES
> --     Sphinx:                      /usr/bin/sphinx-build (ver 1.1.3)
> --     PdfLaTeX compiler:           /usr/bin/pdflatex
> --
> --   Tests and samples:
> --     Tests:                       NO
> --     Performance tests:           NO
> --     C/C++ Examples:              NO

还有很多其他的标志和设置。它留给你作进一步的探索。

现在您可以使用 make 命令并使用安装 make install 命令。 make install 应该作为根执行。

make
su
make install

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

  1. 将模块移动到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时都必须这样做。

  1. Add ``/usr/local/lib/python2.7/site-packages`` to the PYTHON_PATH :只做一次。刚刚打开 ~/.bashrc 在上面加上下面的一行,然后注销并返回。

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages

这样OpenCV的安装就完成了。打开终端并尝试 import cv2 .

要生成文档,只需输入以下命令:

make docs
make html_docs

然后打开 opencv/build/doc/_html/index.html 并在浏览器中为其添加书签。

1.3.5. 额外资源

1.3.6. 练习

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