1. 程式人生 > >opencv包含標頭檔案出錯的粗略解讀

opencv包含標頭檔案出錯的粗略解讀

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”