OpenCV計算機視覺庫
OpenCV 全稱為 Open Source Computer Vision Library,是一個跨平臺的開源計算機視覺和機器學習軟件庫,可用于開發(fā)實時的圖像處理、計算機視覺以及模式識別程序。該程序庫也可以使用英特爾公司的 IPP 進行加速處理。
OpenCV 旨在為計算機視覺應(yīng)用程序提供通用基礎(chǔ)架構(gòu),并加速機器感知在商業(yè)產(chǎn)品中的使用。
該庫有2500多種優(yōu)化算法,其中包括一套全面的經(jīng)典和最先進的計算機視覺和機器學習算法。這些算法可用于檢測和識別人臉、識別物體、對視頻中的人類行為進行分類、跟蹤攝像機運動、跟蹤移動物體、提取物體的三維模型、從立體攝像機中產(chǎn)生三維點云、將圖像拼接起來以產(chǎn)生整個場景的高分辨率圖像、從圖像數(shù)據(jù)庫中找到類似的圖像、從使用閃光燈拍攝的圖像中去除紅眼、跟蹤眼睛的運動、識別風景并建立標記以疊加到增強現(xiàn)實中等等。OpenCV擁有超過4.7萬人的用戶群,估計下載量超過1800萬。該庫在公司、研究小組和政府機構(gòu)中被廣泛使用。
除了谷歌、雅虎、微軟、英特爾、IBM、索尼、本田、豐田等知名公司外,還有許多初創(chuàng)公司,如 Applied Minds、VideoSurf 和 Zeitera 等都在廣泛使用 OpenCV。OpenCV 的應(yīng)用范圍很廣,包括將街景圖像拼接在一起,在以色列檢測監(jiān)控視頻中的入侵行為,在中國監(jiān)控礦山設(shè)備,在Willow Garage幫助機器人導(dǎo)航和拾取物體,在歐洲檢測游泳池溺水事故,在西班牙和紐約運行互動藝術(shù),在土耳其檢查跑道上的碎片,在世界各地的工廠檢查產(chǎn)品的標簽,以及在日本快速檢測人臉。
它有 C++、Python、Java 和 MATLAB 接口,支持Windows、Linux、 Android 和Mac OS。OpenCV 主要傾向于實時視覺應(yīng)用程序,并在可用時利用 MMX 和 SSE 指令。 目前正在積極開發(fā)功能齊全的 CUDA 和 OpenCL 接口。有超過 500 種算法和大約 10 倍的函數(shù)組成或支持這些算法。OpenCV 是用 C++ 原生編寫的,具有可與 STL 容器無縫協(xié)作的模板化接口。
OpenCV 具有模塊化結(jié)構(gòu),這意味著該軟件包包含多個共享或靜態(tài)庫。以下模塊可用:
- 核心功能(core)- 定義基本數(shù)據(jù)結(jié)構(gòu)的緊湊模塊,包括密集的多維數(shù)組 Mat 和所有其他模塊使用的基本功能。
- 圖像處理( imgproc ) - 一個圖像處理模塊,包括線性和非線性圖像過濾、幾何圖像變換(調(diào)整大小、仿射和透視變形、通用的基于表格的重新映射)、色彩空間轉(zhuǎn)換、直方圖等。
- Video Analysis ( video ) - 一個視頻分析模塊,包括運動估計、背景減除和對象跟蹤算法。
- 相機校準和 3D 重建( calib3d ) - 基本的多視圖幾何算法、單相機和立體相機校準、物體姿態(tài)估計、立體對應(yīng)算法和 3D 重建的元素。
- 2D 特征框架( features2d ) - 顯著特征檢測器、描述符和描述符匹配器。
- 對象檢測( objdetect ) - 檢測預(yù)定義類的對象和實例(例如,面部、眼睛、杯子、人、汽車等)。
- 高級 GUI ( highgui ) - 簡單 UI 功能的易于使用的界面。
- 視頻 I/O ( videoio ) - 一個易于使用的視頻捕獲和視頻編解碼器接口。
- ...一些其他幫助模塊,例如 FLANN 和 Google 測試包裝器、Python 綁定等。
