opencv包含標頭檔案出錯的粗略解讀
阿新 • • 發佈:2019-01-01
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”