一、前言
我第一次配置OpenCV是阅读浅墨的《OpenCV 3编程入门》,然后根据书上的步骤配置,我觉得直接添加路径到环境变量path不太科学,特记录下来和大家分享。
浅墨配置OpenCV的教程链接http://blog.csdn.net/poem_qianmo/article/details/19809337
二、下载、安装(解压缩)
下载、安装比较简单,解压之后有build、sources两个文件夹。这一部分可以参考浅墨的教程相关部分。
三、设置系统环境变量
设置环境变量说白了就是让程序能找到相关的依赖(dll、lib),也就是添加路径到环境变量里。大部分人都是直接在系统环境变量path末尾添加路径,我觉得这样不太好,在以下场景中,就显得比较麻烦:比如路径添加的太多了,以后想检查path变量,或者以后移动了路径,去path变量中找到并修改。
1、在系统变量中新建变量,然后命名变量名OpenCV_build_path,在变量值中添加路径E:\VS2010learning\opencv\build,然后点击确定保存。
2、新建变量,然后命名变量名OpenCV_bin_path,在变量值中添加路径%OpenCV_build_path%\x86\vc12\bin,然后点击确定。
3、点击path变量,选择编辑,在末尾添加%OpenCV_bin_path%用分号隔开。
三、在VS中建立工程,设置
1、新建一个控制台程序
2、右键工程打开属性窗口,找到VC++ Directories/Include Directories,分别添加$(OpenCV_build_path)\include、$(OpenCV_build_path)\include\opencv、$(OpenCV_build_path)\include\opencv2,在VC++ Directories/Library Directories中添加$(OpenCV_build_path)\x64\vc12\lib。
3、找到Linker/Input/Additional Dependencies,添加OpenCV的lib,这个可以谷歌,就是$(OpenCV_build_path)\x64\vc12\lib文件夹中的文件名
opencv_calib3d2411d.lib
opencv_contrib2411d.lib
opencv_core2411d.lib
opencv_features2d2411d.lib
opencv_flann2411d.lib
opencv_gpu2411d.lib
opencv_highgui2411d.lib
opencv_imgproc2411d.lib
opencv_legacy2411d.lib
opencv_ml2411d.lib
opencv_nonfree2411d.lib
opencv_objdetect2411d.lib
opencv_ocl2411d.lib
opencv_photo2411d.lib
opencv_stitching2411d.lib
opencv_superres2411d.lib
opencv_ts2411d.lib
opencv_video2411d.lib
opencv_videostab2411d.lib
opencv_calib3d2411.lib
opencv_contrib2411.lib
opencv_core2411.lib
opencv_features2d2411.lib
opencv_flann2411.lib
opencv_gpu2411.lib
opencv_highgui2411.lib
opencv_imgproc2411.lib
opencv_legacy2411.lib
opencv_ml2411.lib
opencv_nonfree2411.lib
opencv_objdetect2411.lib
opencv_ocl2411.lib
opencv_photo2411.lib
opencv_stitching2411.lib
opencv_superres2411.lib
opencv_ts2411.lib
opencv_video2411.lib
opencv_videostab2411.lib
3、写几句测试代码,首先包含opencv头文件,如下
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
如果提示找不到包含的头文件,说明环境变量还没生效,可以注销然后再试。然后在main中写几句测试代码,如下
Mat img = Mat::zeros(200,200,CV_8U);
imshow("test",img);
waitKey(0);
4、编译运行,或者编译完找到文件夹下对应的.exe文件运行,ok。