python - OpenCV 在 Windows 上安装 opencv_contrib

标签 python opencv opencv-contrib

我正在使用 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 时,出现错误

enter image description here

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

最佳答案

Update 29-5-2017: This also works with OpenCV 3.2.0-dev. Now using Visual Studio 2015 or 2017 gives no errors.

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

As mentioned by @AleksandrUsarov in the comments section, this method still works for OpenCV 4.1.2, but you need to check OPENCV_ENABLE_NONFREE parameter as well.

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

要遵循的步骤是:

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

cmake

  1. 配置,会出现很多红色高亮的行。

configure

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

compiler

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

extra modules

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

new

  1. CMake 的最后一步是按生成
  2. 在继续之前确保生成完成

generating done

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

the sln file

请耐心等待,因为这一步和下一步会花费很多时间。

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

build

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

verification

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

关于python - OpenCV 在 Windows 上安装 opencv_contrib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37517983/

相关文章:

python - cv2、scipy.misc 和 skimage 之间的区别

c++ - fatal error : opencv2/sfm. hpp : no such file or directory #include <opencv2/sfm. hpp>

python-3.x - PyCharm:为 SIFT、SURF 等操作安装非自由 OpenCV 模块

python - 如何使用 networkx 库为启用对角线的 A* 算法创建 8 单元邻接图

python 正则表达式

OpenCV:如何拆分图像?

opencv - 找不到 opencv2/surface_matching.hpp,没有命名空间 ppf_match_3d

python - 将具有时间戳值的多个列转换为 GMT 时间,而不使用 pandas 中的 DateTimeIndex

python - 单击 CLI 中缺少 1 个必需的位置参数