准备工作:
OPENCV 3.4.10 https://opencv.org/releases/
VS2017 https://visualstudio.microsoft.com/zh-hans/
安装VS2017要选择
CUDA https://developer.nvidia.com/cuda-downloads
自行查询显卡对应版本 本文使用cuda10.1
要能在Visual Studio中使用上述安装的OpenCV,需要如下两个步骤:
-
配置相关的环境变量
-
建立工程要配置相关的属性
1. 配置相关的环境变量
在用户变量和系统变量中的Path变量都添加进opencv安装目录的build中的bin文件夹路径
D:\opencv\opencv\build\x64\vc15\bin
build文件夹只有"x64"文件夹(似乎是只支持64位系统,所以没有“x86”文件夹),加上我是64位系统,所以选择了“x64”。而至于为什么选择“vc15”下的"bin"文件夹,那是根据所使用的VS版本决定的。
Visual Studio 版本 | OpenCV对应文件夹 |
---|---|
VS2008 | vc9 |
VS2010 | vc10 |
VS2012 | vc11 |
VS2013 | vc12 |
VS2014 | vc13 |
VS2015 | vc14 |
VS2017 | vc15 |
OpenCV3.4.2的"x64"只有"vc14"和"vc15",这意味着它只支持VS2015和VS2017。
2. 建立工程要配置相关的属性
-
新建c++空文件
-
进入视图->项目管理器
-
debug x64模式,然后博客上有三种情况
- 在project右键属性
- 在debug上右键属性
- 在debug->Microsoft.cpp.x64.user右键属性
我选择第二种,配置完第4步后,发现以上三种操作效果一样。
-
包含目录,添加以下路径
在库目录下,添加以下路径 -
添加依赖项,选择“链接器”中的“输入”, “附加依赖项”
在上述库目录(即\build\x64\vc15\lib)中,可以找到对应的.lib。
如果是在debug模式下,添加opencv_world341d.lib;
若是release模式,则选opencv_world341.lib。它们的文件名相差一个"d",带"d"的表示debug。
不可两个都添加,否则会出现一定的错误,也不可在debug下配置非debug的lib,在release下配置debug的lib,一定要对应使用。若要在release模式下使用,就要再对应地进行配置。
3. 打开图片
报错:无法打开文件“opencv_world340d.dll
重启电脑,新建项目,发现上面添加的路径和依赖都不见了。
重新添加路径和依赖,成功运行程序。
重新打开运行,没问题。
4. YOLOV4
1.打开darknet.sln
平台工具集选择“无升级”
打开后,显示错误 : 项目“D:\...\darknet-master\build\darknet\darknet.vcxproj”配置“Release|x64”的 Designtime 生成失败
将项目改为release x64,同时点击项目,然后重定向解决方案,一定要选择无升级,这样就可以把编译平台停在vs2015。没有报错。
2、 修改配置
-
常规 – 平台工具集:vs2015(v140)
-
VC++目录 – 包含目录:
…\opencv\build\include
…\opencv\build\include\opencv
…\opencv\build\include\opencv2VC++目录 – 库目录:
…\opencv\build\x64\vc14\lib -
添加目录…\opencv\build\x64\vc14\lib下库的名字
-
这里的目录自己生成了错误的目录,幸好发现才改了回来
3、 "CUDAVisualStudioIntegration\extras\visual_studio_integration\MSBuildExtensions"下的文件直接拷贝到“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations”文件夹中。
4、 将…\opencv\build\x64\vc14\bin下的opencv_world330.dll 和opencv_ffmpeg330_64.dll 复制到 \darknet\darknet-master\build\darknet\x64 目录下
5、 右键工程项目,点击重新生成,生成成功
6、 下载yolo_v4 weights: 把它放到darknet\build\darknet\x64下
7、 在darknet\build\darknet\x64下按住shift键,点击鼠标右键选择“在此处打开Powershell 窗口(s)。
在命令行输入 .\darknet detect cfg/yolov4.cfg yolov4.weights data/dog.jpg