前言:自己在找各种配置方法看了大概有20篇左右的博客,在踩了很多坑情况下花了一下午终于配置成功了。
第一步:下载opencv安装包
1、官网下载
下面是官网的网址,大家可以根据自己情况选择合适的版本(我的是4.0.1版本)https://opencv.org/releases/page/2/
第二步:直接解压下载的压缩包
第三步:配置系统变量(WIN10)
1、找到此电脑
2、右键->属性->高级系统设置->环境变量->系统变量中的path变量->编辑->新建,将你解压的opencv文件夹中的***opencv\build\x64\vc15\bin路径添加到当中。这里我是选择了vc15这个子文件夹,因为VS2017对应的是vc15,其它版本相互对应关系网上都有。
注意:路径粘贴后记得点确定,并在外面点能点的确定全点选一遍
第四步:相关文件的配置
注意:网上很多教程没有这一步,会报那种找不到dll文件的错误,是因为没有将opencv里面的相关文件复制到C盘中的文件夹里面
操作方法:将bin目录下面的opencv_world401.dll和opencv_world401d.dll文件复制到C:\Windows\SysWOW64这个文件夹里面即可
将bin目录里面的opencv_ffmpeg401_64.dll复制到C:\Windows\System32这个文件夹里面(详细看图)
如果是opencv其他的版本,把对应的dll文件移动到上述两个C盘文件夹即可!
第五步:进入VS2017配置属性管理器进行相关配置
1、新建一个项目,我这里建了一个空项目
2、进入属性管理器,菜单栏->视图->其他窗口->属性管理器
3、对Debug|X64进行配置,右键Microsoft.Cpp.x64.user,点击属性
4、这里我们对属性中的 VC++目录->包含目录和VC++目录->库目录进行添加相关路径,对 链接器->输入->附加依赖项进行添加相关路径
5、包含目录中加入
C:\Program Files\opencv\build\include
C:\Program Files\opencv\build\include\opencv2
库目录中加入
C:\Program Files\opencv\build\x64\vc15\lib
6、链接器->输入->附加依赖项中加入
opencv_world401d.lib
401代表的是opencv4.0.1
注意:有关release|X64的配置为可选项,后面也有热心读者提醒,所以下面的这一步可以不做,因为编译时只用到了debug,release是发布程序时才会用到。
//7、对Release|X64进行配置,右键Microsoft.Cpp.x64.user,点击属性
//链接器->输入->附加依赖项中加入
//opencv_world401.lib
第六步:勾选微软符号服务器(此步为可选项)
其实到上一步已经配好了,但是到了关键时候VS2017总是说我少各种dll文件,百度上面说不用理这种错误,可以选择勾选微软符号服务器来下载缺失的dll文件
操作步骤:左键调试->选项->常规 勾选启动源服务器支持
符号那一项勾上微软符号服务器
注意:可以用一个文件夹来缓存下载的dll文件,只是第一次加载,不用担心。或者,你也可以等加载完了之后,再把之前勾选的取消掉,也没有问题。 我建了一个文件夹(文件夹是我自己建的),后面发现它下载了很多pdb文件!
注意:到上面所有工作,opencv已经配完了,注意解决方案平台那一栏要换成X64(因为我们一直都在配X64)
七步:测试环节!
注意:由于很多人遇到图片无法输出的情况,在此特地添加一条需要注意的事项,读入图片路径时有两种方法。
(1)绝对路径
eg:Mat img = imread("C:\Program Files\opencv\Project1\Project1\girl.png);
注意这个地方的双斜杠很重要,直接弄过来的图片途径是只有一个斜杠的,两个斜杠的原因应该是第一个斜杠是转义字符。
(2)图片路径
eg:Mat image = imread(“girl.png”);
这个地方有两点需要注意:第一个就是大家的图片格式一定要分清楚,建议自己右键查看目标图片的属性,另一个就是要注意这样做的前提条件就是你的图片就在你所建工程的目录下。不然会显示找不到图片。
注意:girl图片的实际名称是girl,其后缀是默认有的不需要再加上.png,加上就会报错。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
Mat image = imread("girl.png"); //存放自己图像的路径
imshow("显示图像", image);
waitKey(0);
return 0;
}
此上即配置成功!!