什麼是OpenCV ?linux
OpenCV的全稱是:Open Source Computer Vision Library算法
OpenCV是Intel開源計算機視覺庫。它由一系列 C 函數和少許 C++ 類構成,實現了圖像處理和計算機視覺方面的不少通用算法。編程
優勢:函數
一、 OpenCV 對非商業應用和商業應用都是免費的;工具
二、 開源的;優化
三、 能夠應用於工程實踐中;spa
缺點:設計
相對於Matlab而言,OpenCV基於C語言開發,編程複雜,開發週期較長。orm
能夠看出,OpenCV的優缺點正好與Matlab的優缺點相反,二者各有所長,根據不一樣的要求選擇不一樣的編程環境。視頻
應用領域:
一、人機互動 二、物體識別 三、圖象分割 四、人臉識別 五、動做識別 六、運動跟蹤 七、機器人
爲何有OpenCV?
計算機視覺市場巨大並且持續增加,且這方面沒有標準API,目前的計算機視覺軟件大概有如下三種:
1.研究代碼(慢,不穩定,獨立並與其餘庫不兼容)
2.耗費很高的商業化工具(好比Halcon, MATLAB+Simulink)
3.依賴硬件的一些特別的解決方案(好比視頻監控,製造控制系統,醫療設備)
這是目前的現狀。而標準的API將簡化計算機視覺程序和解決方案的開發。OpenCV致力於成爲這樣的標準API。
項目歷史:
1999年1月,CVL項目啓動。主要目標是人機界面,能被UI調用的實時計算機視覺庫,爲Intel處理器作了特定優化。2000年6月,第一個開源版本OpenCV alpha 3發佈。2000年12月,針對linux平臺的OpenCV beta 1發佈。期間,繼續各類研究。。。2006年,支持Mac OS的OpenCV 1.0發佈。2009年9月,OpenCV1.2(beta2.0)發佈。2009年10月1日,Version 2.0發佈。 OpenCV 擁有包括 500 多個C函數的跨平臺的中、高層 API。它不依賴於其它的外部庫——儘管也可使用某些外部庫。 OpenCV 使用類BSDlisence,因此對非商業應用和商業應用都是免費(FREE)的。(細節參考 license)。 OpenCV 爲Intel Integrated Performance Primitives (IPP) 提供了透明接口。 這意味着若是有爲特定處理器優化的的 IPP 庫, OpenCV 將在運行時自動加載這些庫。 OpenCV提供的視覺處理算法很是豐富,而且他不分以C語言編寫,加上其開源的特性,處理得當,不須要添加新的外部支持也能夠完整的編譯連接生成執行程序,因此不少人用它來作算法的移植,OpenCV的代碼通過適當改寫能夠正常的運行在DSP系統和單片機系統中,目前這種移植在大學中常常做爲相關專業本科生畢業設計或者研究生課題的選題。