第一篇 OpenCv常用頭文件#include介紹

初學 OpenCv,在用VS2015編寫程學的時,有時候在編譯過程中會出現紅色波浪線,極大的困擾着初學者心情,這種情況作爲新人的我深有體會。 後來逐漸意識到,問題主要出在編寫的時候,有一個#include<>的過程,這個過程的主要作用就是,使接下來的代碼函數裏面被提前定義在這些頭文件裏。顧名思義,include本來就是包含包括的意思,所以通過程序一開始的include<>,我們就能實現對程序中所用字符代碼的提前聲明! 但是,爲什麼有時候我們明明有了include<>,但在實際的程序運行中,還是會出現紅色波浪線呢?原因很簡單,就是你使用的一些函數或者並沒有包含在你已經聲明的include裏!
(1)區別一下:cv.hpp 和 opencv.hpp
網上一些文章可能沒有說清楚。其實,cv.hpp和opencv.hpp是等同的關係。只不過,前者是早期opencv版本中的定義名稱,而後者opencv.hpp則是3.0版本之後的表示方法。
(2)共同點:#include<cv.h>和opencv.hpp中均包含了以下的頭文件:
 
 #include "opencv2/core.hpp"
 #include "opencv2/imgproc.hpp"
 #include "opencv2/video.hpp"
 #include "opencv2/objdetect.hpp"
 #include "opencv2/imgcodecs.hpp"
 #include "opencv2/highgui.hpp"
 #include "opencv2/ml.hpp"
簡言之,我們在編寫代碼的時候,或許只需要一個簡單的#include<opencv2/opencv.hpp>就可以輕鬆的解決紅色波浪線未定義字符的煩惱!
(3)常用頭文件名的解釋
[core]核心功能模塊
主要包含了opencv基本數據結構,動態數據結構,繪圖函數,數組操作相關函數,輔助功能與系統函數和宏。
[imgproc]圖像處理模塊
主要包換了圖像的變換,濾波直方圖相關結構分析,形狀描述 。
[video]視頻模塊
主要運用在調用攝像頭時。
[highgui]高層GUI圖像交互模塊
主要包換了圖形交互界面,媒體I/O的輸入輸出,視頻信息的捕捉和提取,圖像視頻編碼等。
[math.h]數學函數庫
包含了一些常用的數學公式。如三角函數,反三角函數,乘方,開方,取整等運算。
[iostream]輸入輸出流頭文件
主要包含了在c++編碼過程中的 cin輸入內容和cout輸出內容。
[vector] "容器"
之所以被認爲是一個容器,是因爲vector能夠能夠像容器一樣存放各種數據類型。換句話說,能夠存放任意類型的動態數組,能夠增加和壓縮數據。
[ml] Machine Learning 機器學習模塊
基本上是統計模型和分類算法,包含如下內容
統計模型 (Statistical Models)
一般貝葉斯分類器 (Normal Bayes Classifier)
K-近鄰 (K-Nearest Neighbors)
支持向量機 (Support Vector Machines)
決策樹 (Decision Trees)
提升(Boosting)
梯度提高樹(Gradient Boosted Trees)
隨機樹 (Random Trees)
超隨機樹 (Extremely randomized trees)
期望最大化 (Expectation Maximization)
神經網 (Neural Networks)
(4)參考文獻 [1]http://blog.csdn.net/u014260892/article/details/44095241
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章