兼容不同版本的OpenCV头文件

来源:互联网 发布:java微信推送模板消息 编辑:程序博客网 时间:2024/05/17 03:58

【原文:http://blog.csdn.net/songzitea/article/details/17961803】

当每次下载OpenCV的新版本时,都需要重新写头文件,更改链接库配置,有点麻烦。所以,我们可以利用OpenCV的版本信息定义了一个宏,无论Opencv是220还是246都能够支持(本人测试过OpenCV2.2.0和OpenCV2.4.6),这样,可以再不用担心更新版本带来的问题了.在此帖出头文件的代码,与大家分享。

[plain] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. #include <opencv2/opencv.hpp>  
  2.   
  3. #define CV_VERSION_ID CVAUX_STR(CV_MAJOR_VERSION) \  
  4.                       CVAUX_STR(CV_MINOR_VERSION) \  
  5.                       CVAUX_STR(CV_SUBMINOR_VERSION)  
  6.   
  7. #ifdef _DEBUG  
  8. #define cvLIB(name) "opencv_" name CV_VERSION_ID "d"  
  9. #else  
  10. #define cvLIB(name) "opencv_" name CV_VERSION_ID  
  11. #endif  
  12.   
  13. #pragma comment( lib, cvLIB("core") )  
  14. #pragma comment( lib, cvLIB("imgproc") )  
  15. #pragma comment( lib, cvLIB("highgui") )  
  16. #pragma comment( lib, cvLIB("flann") )  
  17. #pragma comment( lib, cvLIB("features2d") )  
  18. #pragma comment( lib, cvLIB("calib3d") )  
  19. #pragma comment( lib, cvLIB("gpu") )  
  20. #pragma comment( lib, cvLIB("legacy") )  
  21. #pragma comment( lib, cvLIB("ml") )  
  22. #pragma comment( lib, cvLIB("objdetect") )  
  23. #pragma comment( lib, cvLIB("ts") )  
  24. #pragma comment( lib, cvLIB("video") )  
  25. #pragma comment( lib, cvLIB("contrib") )  
  26. #pragma comment( lib, cvLIB("nonfree") )  

注:对于比较老的OpenCV版本,可能有个别lib的名称不对,修改一下就可以了。

1 0
原创粉丝点击