VS配置OpenCV教程(超详细)
目录
安装环境说明
操作系统:Windows10
OpenCV版本:OpenCV2和OpenCV3
VS版本:VS2015或者VS2017
下载OpenCV
OpenCV下载地址:http://opencv.org/或者直接搜OpenCV下载,找到对应的版本下载,应该是个压缩包,解压,可以看到两个文件夹:
配置OpenCV开发环境
1、添加环境变量:
电脑左上角找到“我的电脑”,点击鼠标右键,依次选择“属性”、“高级系统设置”、“环境变量”、“Path”。
双击“Path”进入到“编辑环境变量”页面,通过新建或者浏览的方式将opencv的“bin文件夹路径”添加到环境变量中,看看自己的电脑是64位还是32位,如果不知道vc14还是vc15可以看下面的VS版本和OpenCV中vc的对应关系表。
注意:添加完环境变量之后最好重启一下电脑,使环境变量生效,不重启的话有可能会出现环境变量未生效这种情况。如果环境变量未生效,那么就找不到OpenCV的dll文件,会报计算机丢失xxx.dll。
VS2003 | VC7 |
VS2005 | VC8 |
VS2008 | VC9 |
VS2010 | VC10 |
VS2012 | VC11 |
VS2013 | VC12 |
VS2015 | VC14 |
VS2017 | VC15 |
2、添加OpenCV包含目录和库目录:
打开Visual Studio,新建一个C++项目,在Visual Studio左上角菜单栏,依次选择“视图”、“其他窗口”、“属性管理器”。找到自己对应的Debug和Release模式,比如说我目前想使用x64的Debug,我就选择第二项下的“Microsoft.Cpp.x64.user”。
右键选择“属性”,进入“Microsoft.Cpp.x64.user的属性页”,依次选择“通用属性”、“VC++目录”,开始添加“包含目录”、“库目录”。
选择“包含目录”,进入“包含目录”页面,添加OpenCV包含目录路径:
-
D:\OpenCV342\opencv\build\
include
-
D:\OpenCV342\opencv\build\
include\opencv
-
D:\OpenCV342\opencv\build\
include\opencv2
选择“库目录”,进入“库目录”页面,添加库目录(lib文件夹)路径:
D:\OpenCV342\opencv\build\x64\vc14\lib
3、添加附加依赖项
添加附加依赖项就是添加所有的lib文件路径,这些lib文件都是在前面那个库目录里面保存的。由于OpenCV2和OpenCV3之间的不同,相应的附加依赖项也就不同。
依次选择“链接器”、“输入”、“附加依赖项”,进入“附加依赖项”页面,开始添加lib文件路径。
注意有两种lib文件,一种带d的是Debug模式,不带d的是Release模式,OpenCV版本不同,前面的序号也不同,需要做相应的修改,两种模式的lib最好不要放一起,否则有可能会导致其中一个模式出问题,Debug模式下使用namewindow函数创建窗口,运行代码会出现两幅图片。
OpenCV3:
-
opencv_world342
.lib
-
opencv_world342d
.lib
OpenCV2413的Debug版:
opencv_contrib2413d.lib opencv_core2413d.lib opencv_features2d2413d.lib opencv_flann2413d.lib opencv_gpu2413d.lib opencv_highgui2413d.lib opencv_imgproc2413d.lib opencv_legacy2413d.lib opencv_ml2413d.lib opencv_nonfree2413d.lib opencv_objdetect2413d.lib opencv_ocl2413d.lib opencv_photo2413d.lib opencv_stitching2413d.lib opencv_superres2413d.lib opencv_ts2413d.lib opencv_video2413d.lib opencv_videostab2413d.lib
OpenCV2413的Release版:
-
opencv_contrib2413
.lib
-
opencv_core2413
.lib
-
opencv_features2d2413
.lib
-
opencv_flann2413
.lib
-
opencv_gpu2413
.lib
-
opencv_highgui2413
.lib
-
opencv_imgproc2413
.lib
-
opencv_legacy2413
.lib
-
opencv_ml2413
.lib
-
opencv_nonfree2413
.lib
-
opencv_objdetect2413
.lib
-
opencv_ocl2413
.lib
-
opencv_photo2413
.lib
-
opencv_stitching2413
.lib
-
opencv_superres2413
.lib
-
opencv_ts2413
.lib
-
opencv_video2413
.lib
-
opencv_videostab2413
.lib
到此,OpenCV就算是配置完了。
属性表
为了方便使用,我们还可以通过添加属性表的方式,配置OpenCV的属性,属性表就是props文件。每次新建项目之后,只需要将属性表放到项目路径下,并添加到项目中就可以使用了,而不需要重复去配置OpenCV的属性。避免了重复去配置OpenCV的属性和切换编译模式得到麻烦,自行选择。
找到自己对应的Debug和Release模式,比如说我目前想使用x64的Debug,我就选择第二项,单击右键选择“添加新项目属性表”。
进入“添加新项”页面 ,修改属性表名称,我这里使用的是“vs2015_opencv342_x64_debug”,表明了当前使用的vs版本、OpenCV版本、系统位数、以及编译模式,修改完之后,点击“添加”按钮,vs2015_opencv342_x64_debug属性表就添加到属性管理器中了,。
属性表文件是保存在项目文件夹中的,下次要用的时候,直接复制、粘贴到新建的项目文件夹中去,并添加到项目属性管理器中就可以了,很方便。
此时,双击“vs2015_opencv342_x64_debug” ,进入到“vs2015_opencv342_x64_debug属性页”,然后就跟前面配置过OpenCV属性的操作一模一样了,自己去看前面的教程,就不重复了。
配置完OpenCV属性之后,就可以开始使用OpenCV了。最好是把属性表保存在一个固定的路径中,方便复制、粘贴,使用在下一个项目中。添加属性表也很简单,先把属性表复制、粘贴到当前项目的项目文件夹中,然后打开“属性管理器”,找到对应的“模式”和“位数”,这里是“Debug|x64”,然后点击鼠标右键选择“添加现有属性表”,把复制、粘贴好的属性表文件添加进来就可以了。
测试
下面的代码是OpenCV最基础的,只用来显示图片,如果能显示,则安装成功,祝贺你从此开始成为OpenCV的一员。
注意:图片应和.cpp文件放在一块,或者使用路径名,路径要使用双斜杠//。
【测试代码】
-
#include<opencv2/opencv.hpp>
-
-
using
namespace cv;
-
-
int main()
-
{
-
Mat girl = imread(
"girl.jpg");
//载入图像到Mat
-
imshow(
"【1】动漫图", girl);
//显示名为 "【1】动漫图"的窗口
-
waitKey(
0);
-
return
0;
-
}
【显示结果】
可能存在的问题
问题1:计算机中丢失msvcp120.dll
出现这个问题,重新下载一下msvcp120.dll,然后添加到对应bin文件夹中,也就是上面添加的环境变量,这两个dll已上传到百度云,请自行下载。
百度网盘链接:https://pan.baidu.com/s/1CLnom87fShhl7wF4yAKggw
提取码:28a7
问题2:计算机中丢失opencv_highgui2413d.dll
出现这个问题,一般就是环境变量没有添加对(路径问题)或者添加完环境变量之后没有重启电脑使环境变量生效。
问题3:应用程序无法正常启动,如下图所示:
没有将bin文件路径添加到环境变量中,还需要重启。
问题4:出现以下错误,不支持接口,主要情况为:摄像头打不开或者等到“不支持接口”完了之后才能打开
这个问题,打开摄像头时,一直返回false,有时还提醒选择视频格式FFMPEG,可能是OpenCV被破坏了,可以使用另外一个版本的OpenCV来进行测试,我目前使用的opencv342,有可能坏了,我就用好的opencv2410来测试,发现摄像头可以打开,重新下一个opencv就好了,同时也可以使用DirectX来修复一下dll。
-
VideoCapture cap(0);
-
-
while (cap.isOpened())
问题5:“CAP_PROP_FRAME_COUNT”: 未声明的标识符 或者“CAP_PROP_FRAME_COUNT”: 不是“cv”的成员
出现这种情况,可能是由于OpenCV版本导致的,OpenCV3可以这样写,但是OpenCV2就需要写成CV_CAP_PROP_FRAME_COUNT
问题6:弹出错误提示框“找不到mfc100”
去360下载微软常用运行库合集,一般360会自动弹出。
<div class="person-messagebox">
<div class="left-message"><a href="https://blog.csdn.net/mars_xiaolei">
<img src="https://profile.csdnimg.cn/F/9/5/3_mars_xiaolei" class="avatar_pic" username="mars_xiaolei">
</a></div>
<div class="middle-message">
<div class="title"><span class="tit "><a href="https://blog.csdn.net/mars_xiaolei" data-report-click="{"mod":"popu_379","ab":"new"}" target="_blank">欧阳磊</a></span>
<!-- 等级,level -->
<img class="identity-icon" src="https://csdnimg.cn/identity/blog6.png"> <span class="flag expert">
<a href="https://blog.csdn.net/home/help.html#classicfication" target="_blank">
<img src="https://csdnimg.cn/release/phoenix/template/new_img/identityExpert.png" alt="">
博客专家
</a>
</span>
</div>
<div class="text"><span>原创文章 247</span><span>获赞 432</span><span>访问量 84万+</span></div>
</div>
<div class="right-message">
<a class="btn btn-sm bt-button personal-watch attented" data-report-click="{"mod":"popu_379","ab":"new","extend1":"个人信息未关注"}">已关注</a>
<a href="https://bbs.csdn.net/topics/395528478" target="_blank" class="btn btn-sm bt-button personal-messageboard">他的留言板
</a>
</div>
</div>
</div>
</article>