我正在使用 OpenCV 3.1.0 、Python 2.7.11 和 Windows 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
时,出现错误。
我正在寻求帮助,我该如何解决它。谢谢。
最佳答案
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 .
要遵循的步骤是:
- 安装 Visual Studio 2013
- 安装 CMake
- 从 github 下载 opencv 和 opencv_contrib
- 创建目录
opencv-3.1.0-dev
并在该目录中创建另外两个目录,一个名为build
,另一个名为sources
.路径
将是opencv-3.1.0-dev\build
和opencv-3.1.0-dev\sources
。 - 解压
opencv-master.zip
和opencv_contrib-master.zip
- 在第 4 步创建的 sources 目录中,粘贴
opencv
和opencv_contrib
目录 - 打开 CMake 并提供两个路径,一个用于构建目录,另一个用于源代码目录
- 按配置,会出现很多红色高亮的行。
- 在这些行出现之前,您必须指定您的编译器。 (同时根据您的需要选择正确的位版本,同样的过程适用于 32 位和 64 位)
- 选择您要构建的任何内容,但最重要的是提供非自由模块的路径。
- 再次按配置,新行将以红色突出显示。
- 确保在按下生成之前取消选中 BUILD_opencv_contrib_world。
- CMake 的最后一步是按生成。
- 在继续之前确保
生成完成
。
- 打开空的构建,你会发现一堆文件。最重要的文件是
OpenCV.sln
。右键单击此 .sln 文件,然后使用 CMake 中使用的 visual studio 2013 打开它。
请耐心等待,因为这一步和下一步会花费很多时间。
- 按照下图中的顺序构建 3 个文件。将模式更改为
Release
。这些步骤大约需要 10 到 15 分钟。
- 复制所有
.dll
文件 [存在于opencv-3.1.0-dev\build\bin\Release
] 和cv2.pyd
并将它们粘贴到Pyhton27\Lib\site-packages
中的site-packages
目录中。 - 要验证构建打开 Python 并执行
import cv2
。如果没有错误,执行cv2.__version__
,你应该得到3.1.0-dev
。
如果有任何不清楚的地方,请观看本回答开头提供的教程。
关于python - OpenCV 在 Windows 上安装 opencv_contrib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37517983/