目前(2017.11)OpenCV最新版本为3.3.1,提供了vc14(VS2015)的运行库,但未提供VS2017的运行库。要想在VS2017中使用,可以用CMake + VS2017重新编译源代码。
同时,OpenCV官方也只提供了Python2.7版本可以调用的库,若想在python 3.6.3 中使用,则需要重新为python3编译。
若需要在Qt或C#中使用可参考本人其他博客。
软件安装部分比较简单,没有什么需要特别注意的,因此不再赘述。
本文使用的系统及软件版本(总之都是目前最新的):
说明:
打开cmake-gui,选取sources和build的路径(如build_vc15),点击configure,若路径不存在会提示创建。
弹出对话框,选择IDE及平台,这里选择Visual Studio 15 2017 Win64,下方Use default native compilers 保持不变,点击finish。
之后CMake会自动寻找C/C++编译器,并根据硬件情况等进行自动配置,期间会尽可能地寻找存在的第三方库,比如:Ant、clAmdBlas、clAmdFft、CUDA、EIGEN、GLib、GStreamer、MKL、LAPACK、VTK …… 如果有需要,找不到的可以手动指定路径。过程中会自动下载ffmpeg的库文件,因此不联网可能报错。下方会生成General configuration for OpenCV 3.3.1信息,这就是首次自动配置的结果。
完成后中间出现大量红色配置,除一些路径配置之外,其中需要注意的几个选项:
不建议勾选:
文章1 中还提供了很多模块及项目的解释,可根据自己需要修改。
修改之后再次点击configure进行配置,红色会消失。若有错误提示,则检查是否勾选了某项而未添加路径。
完成后点击Generate,开始生成项目文件。
OpenCV官方只提供了Python 2.7可以使用的库文件.pyd(其他语言写成的可以被python调用的扩展),若想在python 3.6.3 中使用,则需要重新为python3编译。
若之前安装过python3或Anaconda3,并将路径添加进系统环境变量中过,CMake将会自动寻找到它们的路径。否则需要手动添加路径。
配置时与python有关的:
想生成在python 3 下用的.pyd,保证python3路径填写无误,并勾选上面的前两项即可。
很多教程在此步骤会打开VS进行项目的编译,事实上这里有更便捷的办法,并且若生成Python库必须这样做。
在生成项目的文件夹(如build_vc15)空白处,按住shift 的同时点击鼠标右键,点击“在此处打开powershell窗口”,键入如下命令:
Release模式:
cmake.exe --build . --config Release --target INSTALL
Debug模式:文章2 中指出debug模式需要去掉 INSTALL_PYTHON_EXAMPLES、BUILD_opencv_python3 和BUILD_opencv_python2 这三项的勾选,经测试若勾选会编译失败。
cmake.exe --build . --config Debug --target INSTALL
等待编译完成即可。
本人编译完成后得到的build_vc15文件夹大小高达7.24G,但其中大部分都是不需要的文件,有用的文件夹主要有两个:
\build_vc15\install (218 MB),它的目录结构如下:
install
├─etc
│ ├─haarcascades
│ └─lbpcascades
├─include
│ ├─opencv
│ └─opencv2
├─samples
│ └─native
│ └─python
└─x64
└─vc15
├─bin
├─lib
└─samples
其中:
\build_vc15\lib\python3\Release (3.72 MB):
此文件夹下为可在python 3中调用的pyd文件:cv2.cp36-win_amd64.pyd
因此,只要保留上述两个路径的文件即可保证opencv正常使用,其中的示例其实也可以删除。
项目配置随便一搜索就有大量的文章教程,这里就不再赘述了,与本文相关的几点:
http://blog.csdn.net/rrrfff/article/details/76796261
https://www.learnopencv.com/install-opencv3-on-windows/