opencv2.x檔案結構解析
1 OpenCV簡介
OpenCV(Open Source Computer Vision)是一個用於實時處理的計算機視覺函式庫,它基於BSD許可證授權並且可免費用於學術研究和商業應用。它擁有C/C++、Python、和Java(僅用於Android)介面,並可在Windows、Linux、Mac和Android平臺上執行。OpenCV庫包含大於2500個優化演算法,擁有5M的下載量和47K+的使用者群體。OpenCV在現實中的應用包括視訊監控(Video Surveillance)、互動藝術(Interactive Art)、礦山檢查(Mine Inspection)、全景圖拼接(Panorama Stitching)以及最新的機器人學(Robotics)應用【此段翻譯自http://code.opencv.org/projects/OpenCV/wiki/WikiStart】。
2 OpenCV模組結構(Modular Structure)
OpenCV擁有一個模組結構,也就是說,OpenCV包(Package)裡包含數個共享的或靜態的庫(Libraries),分別如下【opencv\doc\opencv2refman.pdf_P1】:
①core. 該模組定義了OpenCV的基本資料結構,包括多維陣列(Multi-dimensional Array)和用於其它模組的基本函式;
②imgproc. 該模組用於影象處理(Image Processing)。它包括線性和非線性的影象濾波(Linear and Non-Linear Image Filtering)、幾何影象變換(Geometrical image Transformations),包括縮放(Resize), affine and perspective warping, generic table-based remapping、顏色空間變換(Color Space Conversion)、直方圖(Histograms)等;
③video. 這是一個視訊分析模組,包含運動估計(Motion Estimation)、背景消除/背景差分(Background Subtraction)和物體跟蹤(Object Tracking)演算法;
④calib3d. 該模組包括基本的多檢視集合演算法(Multiple-View Geometry Algorithms)、單體和立體相機的標定(Single and Stereo Camera Calibration)、物件姿態估計(Object Pose Estimation)、雙目立體匹配(Stereo Correspondence)演算法和元素的三維重建(Elements of 3D Reconstruction);
⑤features2d. 包括顯著特徵檢測器(Salient Feature Detectors)、描述符(Descriptors)和描述符匹配器(Descriptor Matchers);
⑥objdetect. 包括預定義的目標和例項的檢測,如臉、眼、杯子、人以及汽車等;
⑦highgui. 該模組擁有一個簡單易用的視訊捕捉(Video Capturing)、影象及視訊譯碼(Image and Video Codecs)以及簡單的UI介面;
⑧gpu. 包含不同模組的GPU加速演算法。
另外還有其它的輔助模組,比如FLANN以及Google的測試包、Python bindings等。
3 OpenCV的下載、安裝、配置及使用