Visual Studio 2017下配置使用OpenCV3.4.1
安装OpenCV
首先,到opencv.org上把opencv的windows包下载下来,我是一上去把就能下的几个全部down下来,免得以后要其他的还得再上来,如下,一个android包,一个ios包,windows下用的包就是这个:opencv-3.4.1-vc14_vc15.exe
然后自己把这个包解压(安装)到你自己喜欢的目录,比如我自己的给目录名称就是D:\AOpencv,就是这个样子,
设置环境变量
安装完了进行环境配置,环境变量设置有两种方法,第一种是通过setx命令设置,第二种是通过"我的电脑“-->”属性“设置。
设置环境变量的第一种方法:命令setx设置
setx -m OPENCV_DIR D:\AOpencv\build
设置环境变量的第二种方法:通过我的电脑-->属性页设置
话不多说,看图就行,
新建VC++项目
配置完了环境变量我们开始建个项目玩一玩。
随便建一个控制台应用项目,我这里取名是默认的ConsoleApplication,这个不用我说吧。
随后就要设置项目了,你总得让项目能找到opencv的源码和库文件吧。
第一步:先配置源码目录:c/c++-->常规-->附加包含目录-->$(OPENCV_DIR)\include\
第二步:再配置库文件目录:链接器-->常规-->附加包含目录-->$(OPENCV_DIR)\x64\vc15\lib
这一步是告诉VC,你到目录D:\AOpencv\build\x64\vc15\lib里去找库文件吧,这个目录下有啥呢,看一眼,
看到了吧,那个opencv_world341d.lib是我们调试版本要用到的库文件,那个opencv_world341.lib则是发行版本要用到的库文件。
第三步:配置使用的库文件:
链接器-->输入-->附加依赖项目-->opencv_world341d.lib。
这个也就是告诉VC,我要使用这个库文件啦。当然这一步可以省略掉,如果你熟悉C++的pragma语法,直接在主程序中添加库依赖就可以了,如下
#pragma comment(lib, "opencv_world341d.lib")
编译运行
和前面的设置一致,选择平台x64。
报错:找不到opencv_world341d.dll
纳尼?怎么会找不到呢,好吧,笨办法regsvr32一下,
还是不行,那没招了,直接找到那个opencv_world341d.dll,把他拖到项目里去先解燃眉之急,如下,
这张图片WayToSuccess.jpg是程序中用来测试用的,你可以随便弄一张,和程序中的名称保持一致即可,
源码如下
// ConsoleApplication1.cpp: 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "opencv2\opencv.hpp"
#pragma comment(lib, "opencv_world341d.lib")
using namespace cv;
int main(int argc, char **argv)
{
Mat a = imread("WayToSuccess.jpg", CV_LOAD_IMAGE_UNCHANGED);
imshow("title", a);
waitKey();
return 0;
}
编译运行,
如果不在编译环境下怎么办?
把那个opencv_world341d.dll或opencv_world341.dll和你的exe文件放在一起,铁定能跑起来。
如果是你自己编译的源码(如何自己编译源码,请参考:《Visual Studio 2017中OpenCV源码解读入门篇:配置OpenCV3.4.1生成VC项目并进行编译》https://mp.csdn.net/postedit/81452343),那你就可以很轻松进入源码调试模式。这里与直接使用build库不同的是,你需要用自己的编译的opencv_world341d.dll和opencv_world341d.lib代替opencv341包里提供的相应文件,并且提供提供opencv_world341d.pdb。最简单的办法是,编译得到这些文件后,全部放到你的工程文件下面就可以了。