Opencv2/3 一键配置

        作者使用VS2010/2013/2015进行相关开发,在使用Opencv2.4.9以及Opencv3.4.1时候,经常在Debug模式和Release模式之间切换,就需要重新配置Opencv的静态库。此外,Opencv2和Opencv3的静态库配置不同,作者在配置Opencv库方面一直没有找到较为便捷的方法。直到在CSDN上看到一篇博文点击打开链接,非常感谢!对其代码稍许修改,用在自己的工程中,可以实现一劳永逸(每次工程新建后添加该头文件即可)。

//OpenCVconfig.h  
#pragma once  
#include <opencv2/opencv.hpp>    

using namespace cv;

#define CV_VERSION_ID CVAUX_STR(CV_MAJOR_VERSION) \
                      CVAUX_STR(CV_MINOR_VERSION) \
                      CVAUX_STR(CV_SUBMINOR_VERSION)

#ifdef _DEBUG
#define cvLIB(name) "opencv_" name CV_VERSION_ID "d"
#else
#define cvLIB(name) "opencv_" name CV_VERSION_ID
#endif

#if CV_MAJOR_VERSION==2
	#pragma comment( lib, cvLIB("core") )    
	#pragma comment( lib, cvLIB("features2d") )  
	#pragma comment( lib, cvLIB("flann") )    
	#pragma comment( lib, cvLIB("gpu") ) 
	#pragma comment( lib, cvLIB("calib3d") )    
	#pragma comment( lib, cvLIB("contrib") )    
	#pragma comment( lib, cvLIB("highgui") )    
	#pragma comment( lib, cvLIB("imgproc") )    
	#pragma comment( lib, cvLIB("legacy") )    
	#pragma comment( lib, cvLIB("ml") )    
	#pragma comment( lib, cvLIB("nonfree") )    
	#pragma comment( lib, cvLIB("legacy") )    
	#pragma comment( lib, cvLIB("objdetect") )    
	#pragma comment( lib, cvLIB("photo") )    
	#pragma comment( lib, cvLIB("stitching") )    
	#pragma comment( lib, cvLIB("ts") )    
	#pragma comment( lib, cvLIB("superres") )    
	#pragma comment( lib, cvLIB("video") )  
	#pragma comment( lib, cvLIB("videostab") )  
#endif

#if CV_MAJOR_VERSION==3
	//下面代码适用官方编译的DLL,不包含contrib
	//#pragma comment( lib, cvLIB("world") ) 
	//下面代码适用自己编译的DLL,包含contrib
	#pragma comment( lib, cvLIB("aruco") )    
	#pragma comment( lib, cvLIB("bgsegm") )  
	#pragma comment( lib, cvLIB("bioinspired") )
	#pragma comment( lib, cvLIB("calib3d") )    
	#pragma comment( lib, cvLIB("ccalib") ) 
	#pragma comment( lib, cvLIB("core") )    
	#pragma comment( lib, cvLIB("datasets") )    
	#pragma comment( lib, cvLIB("dnn") ) 
	#pragma comment( lib, cvLIB("dnn_objdetect") )
	#pragma comment( lib, cvLIB("dpm") )    
	#pragma comment( lib, cvLIB("face") )    
	#pragma comment( lib, cvLIB("features2d") )    
	#pragma comment( lib, cvLIB("flann") )    
	#pragma comment( lib, cvLIB("fuzzy") )  
	#pragma comment( lib, cvLIB("hfs") )
	#pragma comment( lib, cvLIB("highgui") )   
	#pragma comment( lib, cvLIB("img_hash") )
	#pragma comment( lib, cvLIB("imgcodecs") )    
	#pragma comment( lib, cvLIB("imgproc") )    
	#pragma comment( lib, cvLIB("line_descriptor") )    
	#pragma comment( lib, cvLIB("ml") )    
	#pragma comment( lib, cvLIB("objdetect") )  
	#pragma comment( lib, cvLIB("optflow") ) 
	#pragma comment( lib, cvLIB("phase_unwrapping") ) 
	#pragma comment( lib, cvLIB("photo") ) 
	#pragma comment( lib, cvLIB("plot") ) 
	#pragma comment( lib, cvLIB("reg") ) 
	#pragma comment( lib, cvLIB("rgbd") )
	#pragma comment( lib, cvLIB("saliency") ) 
	#pragma comment( lib, cvLIB("shape") ) 
	#pragma comment( lib, cvLIB("stereo") ) 
	#pragma comment( lib, cvLIB("stitching") ) 
	#pragma comment( lib, cvLIB("structured_light") ) 
	#pragma comment( lib, cvLIB("superres") ) 
	#pragma comment( lib, cvLIB("surface_matching") ) 
	#pragma comment( lib, cvLIB("text") ) 
	#pragma comment( lib, cvLIB("tracking") ) 
	#pragma comment( lib, cvLIB("video") ) 
	#pragma comment( lib, cvLIB("videoio") ) 
	#pragma comment( lib, cvLIB("videostab") ) 
	#pragma comment( lib, cvLIB("xfeatures2d") ) 
	#pragma comment( lib, cvLIB("ximgproc") ) 
	#pragma comment( lib, cvLIB("xobjdetect") ) 
	#pragma comment( lib, cvLIB("xphoto") ) 

#endif

        对于不同版本的Opencv库,1)会依据属性中配置的include目录来确定是调用Opencv2还是Opencv3;2)会根据工程当前的配置类型来确定是引入Debug或Release库。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值