OpenCV是計算機視覺開源庫,由一系列C、C++類構成,包含了大量的C++、Python接口,主要的算法包括圖像處理、機器視覺等。
做計算機視覺、SLAM等方向必須要掌握opencv的使用。
使用OpenCV已經好久一段時間了,主要用到的就那幾個主要的模塊,現在對OpenCV的框架個各模塊的功能做一個介紹。
主要模塊介紹:
1.【core】核心模塊
- OpenCV基本數據結構
- 動態數據結構
- 繪圖函數
- 數組操作相關函數
- 輔助功能與系統函數和宏
- 與OpenGL的互操作
2.【imgproc】Imaging與Processing兩個單詞的縮寫的組合。圖像處理模塊。
- 線性和非線性的圖像濾波
- 圖像的幾何變換
- 其他(Miscellaneous)圖像轉換
- 直方圖相關
- 結構分析和形狀描述
- 運動分析和對象跟蹤
- 特征檢測
- 目標檢測等內容
3.【features2d】2D功能框架
- 特征檢測和描述
- 特征檢測器(Feature Detectors)通用接口
- 描述符檢測器(Descriptor Extrators)通用接口
- 描述匹配器(Descriptor Matches)通用接口
- 通用描述符(Generic Descriptor)匹配器通用接口
- 關鍵點繪制函數和匹配功能繪制函數
4.【flann】—— Fast Library for Approximate Nearest Neighbors,高維的近似近鄰快速搜索算法庫,包含兩個部分:
- 快速近似最近鄰搜索
- 聚類
5.【gpu】——運用GPU加速的計算機視覺模塊
6.【legacy】——一些已經廢棄的代碼庫,保留下來作為向下兼容,包含如下相關的內容:
- 運動分析
- 期望最大化
- 直方圖
- 平面細分(C API)
- 特征檢測和描述(Feature Detection and Description)
- 描述符提取器(Descriptor Extractors)的通用接口
- 通用描述符(Generic Descriptor Matchers)的常用接口
- 匹配器
7.【ml】——Machine Learning,機器學習模塊, 基本上是統計模型和分類算法,包含如下內容:
- 統計模型 (Statistical Models)
- 一般貝葉斯分類器 (Normal Bayes Classifier)
- K-近鄰 (K-NearestNeighbors)
- 支持向量機 (Support Vector Machines)
- 決策樹 (Decision Trees)
- 提升(Boosting)
- 梯度提高樹(Gradient Boosted Trees)
- 隨機樹 (Random Trees)
- 超隨機樹 (Extremely randomized trees)
- 期望最大化 (Expectation Maximization)
- 神經網絡 (Neural Networks)
- MLData
8.【nonfree】,也就是一些具有專利的算法模塊 ,包含特征檢測和GPU相關的內容。最好不要商用,可能會被告哦。其中SIFT特征點的檢測和處理都在此模塊中。
9.【objdetect】——目標檢測模塊,包含Cascade Classification(級聯分類)和Latent SVM這兩個部分。
10.【ocl】——即OpenCL-accelerated Computer Vision,運用OpenCL加速的計算機視覺組件模塊
11.【photo】——也就是Computational Photography,包含圖像修復和圖像去噪兩部分
12.【stitching】——images stitching,圖像拼接模塊,包含如下部分:
- 拼接流水線
- 特點尋找和匹配圖像
- 估計旋轉
- 自動校准
- 圖片歪斜
- 接縫估測
- 曝光補償
- 圖片混合
13.【superres】——SuperResolution,超分辨率技術的相關功能模塊
14.【ts】——opencv測試相關代碼,不用去管他
15.【video】——視頻分析組件,該模塊包括運動估計,背景分離,對象跟蹤等視頻處理相關內容。
16.【Videostab】——Video stabilization,視頻穩定相關的組件,官方文檔中沒有多作介紹,不管它了。
17. opencv3新增了shape模塊!
【shape】--形狀的匹配以及距離計算SHAPE
參考自:https://www.cnblogs.com/black-mamba/p/5924453.html