opencv调用方式分为静态和动态调用,我这里为动态调用,静态调用需要添加的库太多,我不是太熟悉各个库的作用。新版本的动态库只有两个dll比较简单,这里使用动态链接。
确定MFC的使用为共享DLL,如果为静态需改为在静态库中使用MFC(若要使用release版本,这里要改运行库为正式版而不是调试版)
代码生成选项中运行库确保为DLL模式,如果使用静态链接需要改为MTD模式。
安装opencv,其实也就是解压过程。我这里的版本为3.0版本,解压完毕后,在系统环境变量PATH添加\opencv\build\x64\vc11\bin,这里的vc11与vs2012对应,是vc的第11版编译器,vc12代表vs2013,这样的话,opencv是不支持vs2012版本以下的。
新建OPENCV项,其值为 \opencv\build为OpenCV安装目录
其次就是对vs项目进行设置,在项目上右键,选择属性,在vc++目录里的包含目录添加include路径:opencv为老板本的c接口函数,opencv2为新版本的c++接口函数
在库目录添加:静态改为staticlib
再在连接器一项的输入中的附加依赖项添加:
若使用静态链接需要添加以下库(不全)不带opencv前缀的都需要添加
3.0版本已经没有legacy了,故将此项去掉
名字里的d代表debug版,如果是release要将d去掉。
包含的时候只需要包含D:\opencv\build\include\opencv2下的opencv.hpp即可
opencv各个lib库作用:
opencv_core :core函数库(基本的数据结构,架构和线性代数,DFT,xml 和yam i/o接口 函数等)
opencv_imgproc :-图像处理函数库(滤波,高斯模糊,形态学膨胀/腐蚀,线性缩放图像大 小,图像几何变化,颜色结构变化,计算直方图等)
opencv_highgui :GUI,图像和视频窗口函数库
opencv_ml :统计机器学习模型函数库(SVM,决策树,级联等)
opencv_features2d :二维特征检测器和描述子函数库(SURF,FAST 等,包括一种新的特征 描述子匹配结构)
opencv_video :动态分析和物体追踪函数库(光流法,移动模板,背景消除)
opencv_objdetect :图像目标检测函数库(haar小波 & LBP人脸检测和识别,HOG人检测 等)
opencv_calib3d :摄像头标定,视觉匹配和三维数据处理函数库
opencv_flann :近似最近领域搜索库和OpenCV分装器
opencv_contrib :最新贡献但不是很成熟的函数库
opencv_legacy :过时代码,为了后续代码兼容性而存在
opencv_gpu :用CUDA来加速一些openCV函数的类库(相对不太稳定,但对openCV开 发非常有帮助)
ps:附加依赖项,库目录,包含目录等的作用:
包含目录:#include <headerfile.h>中headerfile.h的搜索目录。 如果有XXX.h找不到,设置这个目录可以解决。 附加依赖项:C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码。 所以,要使用一个库,除了要include他的头文件以外,还要在链接过程中把lib加进去。这个就是在附加链接库中设置。 其实,一般的库会用#pragma comment(lib,"xxx.lib") 来设置 这个过程出错会出现link error,大概是“未定义的函数XXX”。 库目录:就是寻找.lib文件的目录。 如果设置错误,会link error,提示"找不到XXX.lib"。