使用 CMake 和 Visual Studio 在 Windows 上为 Python2 构建和编译 opencv 3.1.0-dev

构建和编译 opencv 3.1.0-dev 以获取非免费模块的访问权限对某些人来说尤其令人头疼,特别是在 Windows 机器上。与 Ubuntu 不同,为 Windows 设置 opencv 需要一些时间,并且在构建和编译之前需要先安装几个 pf 依赖项。

在进一步执行任何步骤之前,你应该下载和安装的程序是:

  1. Python 2.7.xPython 3.xx
  2. CMake 的

如果你要下载 Python for Win32,即使你使用的是 64 位计算机,也应该下载 CMake for Win32

建议下载 32 位程序,因为某些 Python 库仅支持 32 位计算机,因此要远离麻烦,只需安装 32 位版本的所有内容即可

  1. Visual Studio 社区 2013

  2. Numpy for Python2.7 Win32

安装完所有上述依赖项后,重新启动 PC,然后你就可以继续下一步了。

第 2 步:

如果你不喜欢阅读的人,可以观看本教程 。本教程将从这里开始到本文档的末尾。

你需要从 github 获取 opencvopencv_contrib 。你可以在以下位置找到: ****

  1. OpenCV 的
  2. opencv_contrib

创建一个名为 opencv-3.1.0 的目录,在此导演中,你将创建另外两个目录,一个用于构建,另一个用于。提取后,你将把两个下载的 zip 文件放在 sources 文件中。

例如,你的 opencv-3.1.0 目录位于 C 驱动器中,因此你将有三个路径:

  1. C:\opencv-3.1.0
  2. C:\opencv-3.1.0\build
  3. C:\opencv-3.1.0\sources

第三个目录将包含两个路径:

  1. C:\opencv-3.1.0\sources\opencv
  2. C:\opencv-3.1.0\sources\opencv_contrib

现在已经完成了准备工作。让我们做一些有用的东西

第 3 步:

运行 CMake 作为管理员。将出现这样的窗口,你必须提供两个目录,一个用于源,另一个用于编译 opencv。下面的图片可以比文字更好地帮助你。

StackOverflow 文档

接下来单击 configure ,你将被提升为提供生成器; 即编译器; 对于 opencv。你必须提供位于 Microsoft Visual Studio 2013 中的 cl.exe。单击指定本机生成器,将出现如下所示的弹出窗口,

路径将是这样的:C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/bin/cl.exe。提供 C 和 C++字段的路径。单击完成并等待配置完成。如果你正确执行上述所有步骤,则应该出现零错误。

StackOverflow 文档

在 CMake 完成配置后,你将看到 CMake 窗口中出现的新项目以红色突出显示。它将是这样的:

StackOverflow 文档

单击小方框,检查所需的构建。搜索 OPENCV_EXTRA_MODULES_PATH 行并在 sources 目录中的 opencv_contrib 中提供 modules 目录。

StackOverflow 文档

完成所有需要并提供额外模块的路径后,再次按 configure 进行更新。之前突出显示的行将不再突出显示,新字段将以红色突出显示。

StackOverflow 文档

同时选中你需要构建的框。

确保 BUILD_opencv_contrib_worldBUILD_opencv_world选中。可能存在一个错误,当检查任何后者时会发生错误。

在此步骤结束时单击生成,你将完成 CMake,你可以关闭它。如果没有错误,你将在下方窗格的末尾收到一条消息,说“ 生成完成”

StackOverflow 文档

第 4 步:

打开 opencv-3.1.0 中的构建目录,你会发现里面有一堆新的文件夹和文件。在此过程开始时它是一个空文件夹。

你将只处理 OpenCV.sln 文件,并且不对其余文件执行任何操作。使用在上一步中在 CMake 中编译时使用的版本打开此文件。它必须是 Visual Microsoft 2013

StackOverflow 文档

*当你打开 .sln 文件时,请耐心等待,因为需要一些时间来准备建筑物。*当 Ready 准备好 (不变)时,你可以开始构建目标。按照下图中的编号开始构建。还要确保 Solution ConfigurationRelease 而不是 Debug

StackOverflow 文档

第 5 步:

构建完成后,你需要将构建目录中的几个文件复制并粘贴到 Python27 目录中。

搜索 cv2.pyd 文件并将其复制到 Python27 中的 site-packages 目录。cv2.pyd 应该存在于 C:\opencv-3.1.0\build\lib\Release 中。之后,C:\opencv-3.1.0\build\bin\Release 中的 .dll 文件复制到 Python27 的父目录中 C:\Python27

在此步骤结束时,重新启动 PC。

验证:

打开 IDLE 并在 Python shell 类型中:

>>> import cv2
>>> print cv2.__version__
3.1.0-dev

StackOverflow 文档