Windows下opencv & opencv_contrib+visual studio步骤及踩过得坑

主要参考链接为对照链接1

下载

安装cmake,下载特定版本的 opencv和opencv_contrib,两者版本要一致。本文为4.5.0版本,cv15,在visual studio2017上部署,在x64平台,debug模式下。
注意下载opencv在官网上下载就可以了,但是opencv_contrib需要在github上下载,对应链接为git链接,选择版本时参考下图:
Windows下opencv & opencv_contrib+visual studio步骤及踩过得坑_第1张图片

编译环节

在参考链接1中接下来的cmake编译阶段,存在问题,具体描述为以下几个:

1.确实存在IPPICV,FFMPEG下载不下来的情况

没有应该不好下(猜测),参考链接1中博主给的几个东西不好用,我下载后放进去再次configure又全为0kb了。但是这些都是警告,如果你后面不用到这些模块的话应该不会出大问题,笔者目前只知道FFMPEG涉及将视频分为一帧一帧的图片,这个东西在python里也可以实现,所以我没处理。只要出现
Configuring done
Generating done
应该是可以的。

2.编译阶段

参考这篇链接链接里的编译步骤,主要是为了某些选项需要勾选,便于库文件的链接简捷,只用opencv_world.lib导入就好了,要不然所有的lib文件都要在后面的visual studio链接输入中写一遍,而且我在写了之后,运行代码报好多个.lib文件找不到的错误,各种尝试都解决不了,还是只导入opencv_world.lib最好了。
Note:注意在configure时候选择好对应的visual-studio版本,和平台是x64,如果为empty默认是win32,一定要仔细。

BUILD_opencv_world   	            勾选
WITH_TBB				            勾选
WITH_OPENMP				            勾选
OPENCV_ENABLE_NONFREE               勾选
BUILD_EXAMPLES                      勾选
 
OPENCV_EXTRA_MODULES_PATH     
配置为:F:\opencv\opencv-4.2.0\opencv_contrib\modules(注意这路径是作者的路径)

3.后面生成工程转到visual-studio

这两篇链接里采用的生成策略都可以,本质都一样,就是ALL-BUILD和Include中都要生成一次,分别对应于opencv-build目录中的bin文件夹和include文件夹中的库文件的生成,这一步会出现很多问题,接下来我们细讲这部分问题,这些问题在这两个链接中都没讲。

库文件生成的问题

无法打开文件“python38_d.lib” 解决办法

这里出现的python文件名和你电脑上的python版本相对应,我的是python3.8,所以现在是这样,解决链接。
Note:如果你不想卸载重新装的话也是可以的,可以在当时打开一开始安装python的安装程序,就是这个东西:
在这里插入图片描述
点开之后有个修改modify的选项,按照链接中的加入对应模块就会出现python38_d.lib,然后需要将python38_d.lib放在visual studio安装目录下就可以,我的这个位置是这样的,不知道为啥,好抽象,尝试了好多次才确定。
Windows下opencv & opencv_contrib+visual studio步骤及踩过得坑_第2张图片

缺少boostdesc_bgm.i等文件,无法下载文件

参考链接及文件下载地址

找不到 feature2d/test/test_detectors_regression.impl.hpp 文件

参考链接
我就是直接把feature2d文件夹直接倒过去。。简单粗暴
注意是feature2d不是xfeature2d,我可真是醉了。。

大概就是这些问题,生成库文件,没错误后就可以新建个项目,然后照着链接中修改工程属性下的包含目录和库目录,以及链接器中输入opencv_world450d.lib即可,然后就可以愉快的开始c++编程啦!!

optflow生成flo文件转换为png图片

这个是我测试代码中要实现的一个小部分,可以不看。
flo转png

‘fopen’: This function or variable may be unsafe. Consider using fopen_s instead" 解决方法

参考链接
项目----》 XX属性 ----》C++ —>预处理器 —》在预处理器定义添加“_CRT_SECURE_NO_WARNINGS”

你可能感兴趣的:(深度学习,c++,opencv)