OpenCV基本库添加opencv_contrib
OpenCV有不少功能定义在opencv_contrib中,因此花了不少时间配置opencv_contrib,我是vs2017+OpenCV3.4.8+opencv_contrib3.4.8+CMake3.15.7。
配置前准备
软件:visual studio2017,OpenCV3.4.8(OpenCV官网下载),opencv_contrib3.4.8(https://github.com/opencv/opencv_contrib/releases),CMake3.15.7(官网下载,我下载的时msi版文件)。
配置时网上搜了不少资料,才解决了安装时的各种问题。
配置过程
- 安装CMake,安装时注意添加CMake到系统路径。
- 选个盘,新建一个opencv3(也可以别的名字)的文件夹(路径不要有中文),里面再新建build和source两个文件夹,build放要安装的完整库,source里面放上面解压的的opencv3.4.8基本库和扩展模块(opencv_contrib3.4.8)。
- 运行CMake,如下图。源代码选择opencv3/source/opencv/下的sources文件夹,一定要选到OpenCV基本库下的sources文件夹,否则会配置失败,安装结果放至opencv3下的build文件夹。
- 点击configure选项,弹出窗口中选择当前使用的VS版本及系统位数(我的X64),点击finish。出现Configuring done即位配置完成。(可以将配置报告复制出来看其中是否有报错)。
- 我在上一步配置时出现opencv_ffmpeg.dll、opencv_ffmpeg_64.dll、还有ippicv什么的下载失败,忘了截图,后来我在https://blog.****.net/valley2013/article/details/106911688 中找到了解决方法,找到相应文件的CMake文件,如下图,修改下载链接。将链接前面的https://raw.githubusercontent.com 修改为 https://raw.staticdn.net,后面部份不变,其他下载失败文件也采用相似操作。重新配置则不再出现报错。
- 配置成功后取消TEST勾选,取消CUDA勾选,勾选BUILD_opencv_world(若不勾选,后面VS配置会产生非常多dll文件要添加到附加依赖项),需要用nonfree.hpp则勾选OPENCV_ENABLE_NONFREE,修改OPENCV_EXTRA_MODULES_PATH,将其值选择为opencv_contrib文件夹中的modules文件夹,完成后再次点击configure。
- 配置完成后出现Configure done,我配置后出现下载失败问题,采取类似步骤5中的操作,再重新开始一步步配置,成功后点击generate。
- 生成成功后,点击Open Project,跳转至vs2017。网上看资料说也可通过新建的build下的OpenCV.sln 进入vs2017配置。
- 选择64位debug和release,生成解决方案。
- 右键CMakeTargets中的INSTAKLL,选择仅限于项目->仅生成INSTALL
- 最后进行环境配置,这与opencv基本库配置一样。
- 有误处请留言指正。