opencv包含头文件出错的粗略解读

来源:互联网 发布:centos kernel devel 编辑:程序博客网 时间:2024/06/08 03:42



OpenCV新手遇到的问题很多问题之一就是#includeopencv头文件的时候经常会出错。程序明明就很简单,一个稍懂opencv的人都知道程序没有错误,但是一编译就是一大堆错误,就是找不到头文件。

[cpp] view plain copy
print?
  1. fatal error C1083: 无法打开包括文件:“cv.h”: No such file or directory  
  2. fatal error C1083: 无法打开包括文件:“highgui.h”: No such file or directory  
  3. ……  
这样的错误很常见吧,这是极有可能是文件(cv.h,highgui.h的路径设置得不对)。opencv从2.2版本以后<opencv root>include下有两个文件夹 opencv 和opencv2 。从官方的意思来看,它逐渐喜欢用opencv2里面的那种包含头文件的方式。

注意:<opencv root>是opencv2.2安装路径。每个人的路径都可能有所不同!!

  


解读一 :Opencv(C:\OpenCV-2.2.0\VS2008\include\opencv)这个文件夹里面有什么呢?


cv.h highgui.h是不是很熟悉哈,如果你想用#include “cv.h”这样的方式,那请确保你配置编译器包含文件的时候路径是:C:\OpenCV-2.2.0\VS2008\include\opencv。因为cv.h在C:\OpenCV-2.2.0\VS2008\include\opencv里面。这就好比博主在中国,你非得跑去非洲喊我的名字找我,能找到我才怪呢!(关于配置编译器可以点这里)

如果你在编译器配置里面填入的是:C:\OpenCV-2.2.0\VS2008\include\,那当你调用cv.h的时候你必须是这样的:

[cpp] view plain copy
print?
  1. #include “opencv/cv.h”  

解读二:Opencv2(C:\OpenCV-2.2.0\VS2008\include\opencv2)这个文件夹里面有什么呢?

   

Opencv.hpp本身是一个头文件,它包含了opencv全部的头文件。有图有真相:

[cpp] view plain copy
print?
  1. #ifndef __OPENCV_ALL_HPP__  
  2.   
  3. #define __OPENCV_ALL_HPP__  
  4.   
  5.    
  6.   
  7. #include "opencv2/core/core_c.h"  
  8.   
  9. #include "opencv2/core/core.hpp"  
  10.   
  11. #include "opencv2/flann/flann.hpp"  
  12.   
  13. #include "opencv2/imgproc/imgproc_c.h"  
  14.   
  15. #include "opencv2/imgproc/imgproc.hpp"  
  16.   
  17. #include "opencv2/video/tracking.hpp"  
  18.   
  19. #include "opencv2/video/background_segm.hpp"  
  20.   
  21. #include "opencv2/features2d/features2d.hpp"  
  22.   
  23. #include "opencv2/objdetect/objdetect.hpp"  
  24.   
  25. #include "opencv2/calib3d/calib3d.hpp"  
  26.   
  27. #include "opencv2/ml/ml.hpp"  
  28.   
  29. #include "opencv2/highgui/highgui_c.h"  
  30.   
  31. #include "opencv2/highgui/highgui.hpp"  
  32.   
  33. #include "opencv2/contrib/contrib.hpp"  
  34.   
  35.    
  36.   
  37. #endif  


除此之外的的都是文件夹,每一个文件夹都是一个头文件,仅此而已。所以如果你配置编译器包含文件的时候是:C:\OpenCV-2.2.0\VS2008\include,那当你想用这种新的方式调用opencv函数的时候,那最简单最可靠的方式就是

[cpp] view plain copy
print?
  1. #include “opencv2/opencv.hpp”  

后话

        如果你不知道到底是用C:\OpenCV-2.2.0\VS2008\include\opencv还是C:\OpenCV-2.2.0\VS2008\include\opencv2,那干脆在包含文件那一项里面,把这两个都填进去!!这样错误的概率就有可能会少了很多。


其实,不管是旧的方式还是新的方式,你只要明确你要包含的头文件在哪个文件夹里面,路径对了,然后再配置编译器。那一切就容易了,对于新手来说,很多东西都是带有一种畏惧、膜拜心理。当初对于动不动就自己写一个头文件,然后包含进去的人超膜拜。后来摸清楚什么是头文件以后,心理拔凉拔凉的:哥怎么就那么容易膜拜人呢,(*^__^*) 。

先写这么多权当抛砖引玉!


26
1
 
 

  相关文章推荐
  • 学习OpenCV时 ,添加:#include<opencv2/core/core.hpp>等头文件出现无法编译的错误
  • 【直播】计算机视觉原理及实战--屈教授
  • 在vs2015中配置Opencv,无法找到源文件"opencv2/opencv.hpp"
  • 【直播】CSDN软考一站通--任铄
  • windows下,Qt Creator 中控制台方式输出hello world
  • 【直播】机器学习之凸优化--马博士
  • [MO]windows xp下vs2008 安装opencv2.3 ,开发环境搭建
  • 【套餐】C/C++学习指南全套教程--邵发
  • Opencv中灰度图像和imread的区别
  • 【套餐】高薪互联网企业入门--Array
  • release下编译:无法打开包括文件:“opencv2/core/core.hpp“
  • 【套餐】机器学习之数学基础系列--AI100
  • Vs安装OpenCv无法打开包括文件:“opencv2/core/core_c.h”:
  • Vivado Hls 设计流程总结
  • opencv for ios 配置后#import <opencv2/opencv.hpp>报错:file not found问题(opencv3.2.0)
  • open cv+C++错误总结(一)
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 win7电脑没有本地连接怎么办 win7字体换不了怎么办 电脑没系统了怎么办 电脑系统没有了怎么办 系统调用区域小怎么办 win8.1网络受限怎么办 电脑连wifi受限怎么办 鼠标不好用了怎么办 手机指纹不好使怎么办 手机录像不好使怎么办 手机1个卡不好使怎么办 手机收藏不好使怎么办 window10连不上网怎么办 电脑没有家庭组怎么办 usb共享网络出错怎么办 电脑共享有密码怎么办 win10连不上网怎么办 w10网络重置了怎么办 点击网络重置后怎么办? 电脑启动找不到硬盘怎么办 电脑开机找不到硬盘怎么办 电脑找不到宽带连接怎么办 电脑文件找不到了怎么办 电脑找不到手机热点怎么办 win7电脑没有网络适配器怎么办 手机计算机桌面找不到怎么办 手机忘记开锁密码怎么办 电脑没网感叹号怎么办 本地连接2没有了怎么办 电脑上找不到本地连接怎么办 网络无访问权限怎么办 电脑无网络访问怎么办 xp连不上网怎么办 xp系统本地连接不见了怎么办 电脑xp系统本地连接怎么办 xp系统本地连接失败怎么办 xp系统找不到本地连接怎么办 台式电脑连不上网络怎么办 win7局域网要密码怎么办 xp网络不能上网怎么办 台式电脑连宽带怎么办