15

我正在使用OpenCV 3.1.0Python 2.7.11Windows 10。我想将额外的模块 ( opencv_contrib ) 构建到 OpenCV 中。

我按照这个GitHub中的步骤进行操作。

$ cd <opencv_build_directory>
$ cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <opencv_source_directory>
$ make -j5

当我键入cmake _DOPENCV_EXTRA_MODULES_PATH=C:\opencv_contrib\opencv_contrib/modules C:\opencv\sources时,出现错误

在此处输入图像描述

我正在寻求帮助,我该如何解决。谢谢你。

4

5 回答 5

29

2017 年 5 月 29 日更新:这也适用于 OpenCV 3.2.0-dev。现在使用 Visual Studio 2015 或 2017 不会出现错误

cv2.pyd 现在自动移动到站点包。您只需要复制 DLL。

正如@AleksandrUsarov在评论部分提到的,这种方法仍然适用于 OpenCV 4.1.2,但您还需要检查OPENCV_ENABLE_NONFREE参数。

我已经制作了一个关于如何从头开始编译和构建自己的 OpenCV 3.1.0-dev 的教程。它简单而有条理,非常适合我。如果您有时间重新编译 OpenCV,请查看教程

要遵循的步骤是:

  1. 安装 Visual Studio 2013
  2. 安装CMake
  3. 从github下载 opencv 和 opencv_contrib
  4. 创建一个目录opencv-3.1.0-dev,并在此目录中创建另外两个目录,一个名为build,另一个名为sources。将pathsopencv-3.1.0-dev\buildopencv-3.1.0-dev\sources
  5. 解压opencv-master.zipopencv_contrib-master.zip
  6. 在步骤 4 中创建的源目录中,粘贴opencvopencv_contrib目录
  7. 打开 CMake 并提供两个路径,一个用于构建目录,另一个用于源目录

制作

  1. configure,会出现很多以红色突出显示的行。

配置

  1. 在这些行出现之前,您必须指定您的编译器。(也根据您的需要选择正确的位版本,相同的过程适用于 32 位和 64 位)

编译器

  1. 选择您想要构建的任何内容,但最重要的是提供非自由模块的路径。

额外的模块

  1. 再次按配置,新行将以红色突出显示。
  2. 确保在按下生成之前取消选中 BUILD_opencv_contrib_world。

新的

  1. CMake 的最后一步是按下generate
  2. 确保generating is done在继续之前。

生成完成

  1. 打开空的构建,你会发现一堆文件。最重要的文件是OpenCV.sln. 右键单击此 .sln 文件并使用 CMake 中使用的 Visual Studio 2013 打开它。

sln 文件

请耐心等待,因为这一步和下一步将需要很多时间。

  1. 按照下图中的顺序构建 3 个文件。将模式更改为Release. 这些步骤大约需要 10 到 15 分钟。

建造

  1. 复制所有.dll文件 [存在于opencv-3.1.0-dev\build\bin\Release] 和cv2.pyd并将它们粘贴site-packagesPyhton27\Lib\site-packages.
  2. 要验证构建打开 Python 并执行import cv2. 如果没有错误,执行cv2.__version__,你应该得到3.1.0-dev.

确认

如果有任何不清楚的地方,请观看本答案开头提供的教程。

于 2016-09-07T04:22:56.667 回答
15

对于 Python 3.6/3.5,您可以从这里使用 *.whl (Python on Wheels) 模块:

pip install opencv_python-3.2.0+contrib-cp36-cp36m-win_amd64.whl

对于 Python 2.7,一个模块中没有 opencv+contrib,但您可以从页面末尾的此处单独安装没有 contrib 的 opencv 模块,然后添加opencv-contrib-python模块:

pip install opencv_python-3.2.0.7-cp27-cp27m-win_amd64.whl
pip install opencv-contrib-python

不要混合 opencv+contribopencv-python (3.2.0+contrib)opencv-contrib-python (3.2.0.7)模块,否则你的 " import cv2" 停止工作,直到你删除opencv-contrib-python模块。

于 2017-05-05T12:39:08.893 回答
8

不需要复杂的东西,只需卸载您拥有的opencv版本并执行以下操作:

pip install opencv-contrib-python

祝你好运,琥珀

于 2017-09-14T10:11:37.640 回答
3

foo bar的答案是将 opencv_contrib 添加到 python 的最佳简单方法。但是 opencv_python-3.2.0.7-cp27-cp27m-win_amd64.whl 仅适用于 AMD 芯片。如果您在 Intel 芯片上运行它,您将收到如下错误消息:“XXX is not a supported wheel on this platform”。在这种情况下,您必须使用 opencv_python-3.2.0.7-cp27-cp27m-win32.whl。

于 2017-05-09T04:48:26.093 回答
1

似乎您没有安装编译器或找不到它。

我已成功使用本指南:

http://docs.opencv.org/3.0-rc1/d5/de5/tutorial_py_setup_in_windows.html

但是必须使用Visual Studio 12 2013,其他版本不行。

于 2016-05-30T05:57:58.410 回答