1. 磐创AI首页
  2. 系列教程
  3. OpenCV_Python

OpenCV-Python 系列 二 | 安装OpenCV-Python

本文是全系列中第2 / 63篇:OpenCV-Python

在Windows中安装OpenCV-Python

目标

在本教程中

  • 我们将学习在你的Windows系统中设置OpenCV-Python。

下面的步骤在装有Visual Studio 2010和Visual Studio 2012的Windows 7-64位计算机上进行了测试。屏幕截图展示的是VS2012。

从预编译的二进制文件安装OpenCV

  1. 下面的Python软件包将被下载并安装到其默认位置。
    1. Python的3.X(3.4+)或Python 2.7.x从这里下载:https://www.python.org/downloads/。
    2. Numpy包(例如使用pip install numpy命令下载)。
    3. Matplotlib( pip install matplotlib)(Matplotlib是可选的,但推荐它,因为我们使用了很多在我们的教程)。
  2. 将所有软件包安装到其默认位置。C:/Python27/如果使用Python 2.7,将安装Python。

  3. 安装后,打开Python IDLE。输入import numpy并确保Numpy运行正常。

  4. 从GitHub:https://github.com/opencv/opencv/releases 或SourceForge网站:https://sourceforge.net/projects/opencvlibrary/files/ 下载最新的OpenCV版本,然后双击将其解压缩。

  5. 转到opencv/build/python/2.7文件夹。

  6. cv2.pyd复制到C:/Python27/lib/site-packages

  7. 打开Python IDLE,然后在Python终端中键入以下代码。

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

如果打印出来的结果没有任何错误,那就恭喜!你已经成功安装了OpenCV-Python。

从源代码构建OpenCV

  1. 下载并安装Visual Studio和CMake。
    1. Visual Studio 2012:http://go.microsoft.com/?linkid=9816768
    2. CMake:https://cmake.org/download/
  2. 将必要的Python软件包下载并安装到其默认位置
    1. Python
    2. Numpy

    注意
    在这种情况下,我们使用的是32位Python软件包二进制文件。但是,如果要将OpenCV用于x64,则将安装Python软件包的64位二进制文件。问题在于,没有Numpy的官方64位二进制文件。你必须自行构建。为此,你必须使用与构建Python相同的编译器。启动Python IDLE时,它会显示编译器详细信息。你可以在此处:http://stackoverflow.com/q/2676763/1134940 获得更多信息。因此,你的系统必须具有相同的Visual Studio版本并从源代码构建Numpy。

    拥有64位Python软件包的另一种方法是使用来自第三方(如Anaconda:http://www.continuum.io/downloads、 Enthought:https://www.enthought.com/downloads/)等现成Python发行版。它的大小会更大,但可以满足你的所有需求。一切都在一个外壳中。你也可以下载32位版本。

  3. 确保Python和Numpy正常运行。

  4. 下载OpenCV源代码。它可以来自Sourceforge:http://sourceforge.net/projects/opencvlibrary/(官方发行版)或来自Github:https://github.com/opencv/opencv (最新源)。

  5. 将其解压缩到一个文件夹中,在opencv中创建一个新的文件夹。

  6. 打开CMake-gui(Start>All Programs> CMake-gui)

  7. 如下填写字段(请参见下图):

    a. 单击Browse Source然后找到opencv文件夹。

    b. 单击Browse Build然后找到我们创建的构建文件夹。

    c. 点击Configure

    OpenCV-Python 系列 二 | 安装OpenCV-Python

    d. 它将打开一个新窗口以选择编译器。选择适当的编译器(此处为Visual Studio 11),然后单击Finish
    OpenCV-Python 系列 二 | 安装OpenCV-Python
    e. 等待分析完成。

  8. 你将看到所有字段都标记为红色。单击WITH字段将其展开。它决定了你需要哪些额外的功能。因此,请标记适当的字段。见下图:

    OpenCV-Python 系列 二 | 安装OpenCV-Python

  9. 现在,单击BUILD字段以将其展开。前几个字段配置构建方法。见下图:

    OpenCV-Python 系列 二 | 安装OpenCV-Python

  10. 其余字段指定要构建的模块。由于OpenCV-Python尚不支持GPU模块,因此可以完全避免使用它以节省时间(但是如果使用它们,则将其保留在此处)。见下图:

    OpenCV-Python 系列 二 | 安装OpenCV-Python

  11. 现在单击 ENABLE字段将其展开。确保未选中ENABLE_SOLUTION_FOLDERS(Visual Studio Express版本不支持解决方案文件夹)。见下图:

    OpenCV-Python 系列 二 | 安装OpenCV-Python

  12. 还要确保在PYTHON字段中,所有内容都已填充。(忽略PYTHON_DEBUG_LIBRARY)。见下图:

    OpenCV-Python 系列 二 | 安装OpenCV-Python

  13. 最后,单击Generate按钮。

  14. 现在转到我们的opencv / build文件夹。在那里你将找到OpenCV.sln文件。用Visual Studio打开它。

  15. 将构建模式检查为Release而不是Debug

  16. 在解决方案资源管理器中,右键单击Solution(或ALL_BUILD)并进行构建。需要一些时间才能完成。

  17. 再次,右键单击INSTALL并进行构建。现在将安装OpenCV-Python。

    OpenCV-Python 系列 二 | 安装OpenCV-Python

  18. 打开Python IDLE,然后输入import cv2 as cv。如果没有错误,则说明已正确安装。

注意
我们没有安装其他支持如TBB、Eigen、Qt、Documentation等。在这里很难解释清楚。我们将添加更详细的视频,或者你可以随意修改。

其他资源

练习题

如果你有Windows计算机,请从源代码编译OpenCV。做各种各样极客。如果遇到任何问题,请访问OpenCV论坛并解释你的问题。

在Ubuntu中安装OpenCV-Python

在本教程中,我们将学习在Ubuntu System中设置OpenCV-Python。以下步骤针对Ubuntu 16.04和18.04(均为64位)进行了测试。

可以通过两种方式在Ubuntu中安装OpenCV-Python:

  • 从Ubuntu存储库中可用的预构建二进制文件安装
  • 从源代码编译。在本节中,我们将同时看到两者。

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

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

仅用于编程和开发OpenCV应用程序时,此方法最有效。

在终端(以root用户身份)中使用以下命令安装python-opencv:https://packages.ubuntu.com/trusty/python-opencv软件包。

$ 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,最新版本将始终包含更好的支持和最新的错误修复。

因此,要获取最新的源代码,首选方法是从源代码进行编译。同样在某个时间点,如果你想为OpenCV做出贡献,则将通过这种方式。

从源代码构建OpenCV

首先,从源代码进行编译似乎有些复杂,但是一旦成功完成,就没有什么复杂的了。

首先,我们将安装一些依赖项。有些是必需的,有些是可选的。如果不想,可以跳过可选的依赖项。

所需的构建依赖项

我们需要CMake来配置安装,需要GCC进行编译,需要Python-develNumpy来构建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

接下来,我们需要GUI功能的GTK支持,相机支持(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

要从OpenCV的GitHub Repository:https://github.com/opencv/opencv下载最新的源代码。 (如果你想为OpenCV做出贡献,请选择此项。为此,你需要先安装Git

$ sudo apt-get install git
$ git clone https://github.com/opencv/opencv.git

它将在当前目录中创建一个文件夹”opencv”。下载可能需要一些时间,具体取决于你的Internet网络。

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

$ mkdir build
$ cd build

配置和安装

现在我们有了所有必需的依赖项,让我们安装OpenCV。必须使用CMake配置安装。它指定要安装的模块,安装路径,要使用的其他库,是否要编译的文档和示例等。大多数工作都是使用配置良好的默认参数自动完成的。

以下命令通常用于配置OpenCV库构建(从构建文件夹执行):
$ cmake ../

OpenCV的默认默认设置为”Release”构建类型,安装路径为/usr/local。有关CMake选项的更多信息,请参考OpenCV C++编译指南:https://docs.opencv.org/4.1.2/d7/d9f/tutorial_linux_install.html

你应该在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__)

在Fedora中安装OpenCV-Python

目标

在本教程中

  • 我们将学习在你的Fedora系统中设置OpenCV-Python。针对Fedora 18(64位)和Fedora 19(32位)进行以下步骤。

介绍

可以通过两种方式在Fedora中安装OpenCV-Python: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配置安装时,请不要忘记设置WITH_EIGEN = ON。下面更多详细信息。)

yum install eigen3-devel

如果你要构建文档是的,你可以使用完整的搜索功能以HTML格式在系统中创建OpenCV完整官方文档的脱机版本,这样,如果有任何问题,你就不必总是访问Internet,而且非常快捷!!!),你需要安装Doxygen(文档生成工具)。

yum install doxygen

下载OpenCV

接下来,我们必须下载OpenCV。你可以从sourceforge网站:http://sourceforge.net/projects/opencvlibrary/ 下载最新版本的OpenCV 。然后解压缩文件夹。

或者,你可以从OpenCV的github存储库下载最新的源代码。(如果你想为OpenCV做出贡献,请选择此项。它始终使你的OpenCV保持最新状态)。为此,你需要先安装Git

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

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

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

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:                    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
...

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

现在,你可以使用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。

原创文章,作者:磐石,如若转载,请注明出处:https://panchuang.net/2020/02/17/opencv-python-%e7%b3%bb%e5%88%97-%e4%ba%8c-%e5%ae%89%e8%a3%85opencv-python/

发表评论

登录后才能评论

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息