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

时间:2022-05-16 16:47:48

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

fatal error C1083: 无法打开包括文件:“cv.h”: No such file or directory
fatal error C1083: 无法打开包括文件:“highgui.h”: No such file or directory
……


这样的错误很常见吧,这是极有可能是文件(cv.h,highgui.h的路径设置得不对)。

opencv从2.2版本以后<opencv root>include下有两个文件夹 opencv 和opencv2。从官方的意思来看,它逐渐喜欢用opencv2里面的那种包含头文件的方式

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

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

#ifndef __OPENCV_ALL_HPP__

#define __OPENCV_ALL_HPP__

 

#include "opencv2/core/core_c.h"

#include "opencv2/core/core.hpp"

#include "opencv2/flann/flann.hpp"

#include "opencv2/imgproc/imgproc_c.h"

#include "opencv2/imgproc/imgproc.hpp"

#include "opencv2/video/tracking.hpp"

#include "opencv2/video/background_segm.hpp"

#include "opencv2/features2d/features2d.hpp"

#include "opencv2/objdetect/objdetect.hpp"

#include "opencv2/calib3d/calib3d.hpp"

#include "opencv2/ml/ml.hpp"

#include "opencv2/highgui/highgui_c.h"

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/contrib/contrib.hpp"

 

#endif

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

#include “opencv2/opencv.hpp”