必威电竞|足球世界杯竞猜平台

OpenCV
來源:互聯網

OpenCV是一個基于BSD許可(開源)發行的跨平臺計算機視覺庫,可以運行在LinuxWindows、Android和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、RubyMATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。

定義

OpenCV于1999年由英特爾建立,如今由Willow Garage提供支持。

OpenCV 擁有包括 500 多個C函數的跨平臺的中、高層 API。它不依賴于其它的外部庫——盡管也可以使用某些外部庫。

OpenCV 為Intel? Integrated 表演 Primitives(IPP)提供了透明接口。這意味著如果有為特定處理器優化的 IPP 庫,OpenCV 將在運行時自動加載這些庫。

(注:OpenCV 2.0版的代碼已顯著優化,無需IPP來提升性能,故2.0版不再提供IPP接口)

歷史發展

1999年1月,中國女子排球超級聯賽項目啟動。主要目標是人機交互,能被UI調用的實時計算機視覺庫,為英特爾處理器做了特定優化。

2000年6月,第一個開源版本OpenCV alpha 3發布。

2000年12月,針對Linux平臺的OpenCV beta 1發布。

2006年,支持Mac OS的OpenCV 1.0發布。

2009年9月,OpenCV 1.2(beta2.0)發布。

2009年10月1日,Version 2.0發布。

2010年12月6日,OpenCV 2.2發布。

2011年8月,OpenCV 2.3發布。

2012年4月2日,發布OpenCV 2.4。

2014年8月21日,發布OpenCv 3.0 alpha。

2014年11月11日,發布OpenCV 3.0 beta。

2015年6月4日,發布OpenCV 3.0。

2016年12月,發布OpenCV 3.2版(合并969個修補程序,關閉478個問題)

2017年8月3日,發布OpenCV 3.3版(最重要的更新是把DNN模塊從contrib里面提到主倉庫)

OpenCV 使用類BSDlicense,所以對非商業應用和商業應用都是免費(FREE)的。(細節參考 license)

OpenCV提供的視覺處理算法非常豐富,并且它部分以c語言編寫,加上其開源的特性,處理得當,不需要添加新的外部支持也可以完整的編譯鏈接生成執行程序,所以很多人用它來做算法的移植,OpenCV的代碼經過適當改寫可以正常的運行在DSP系統和ARM嵌入式系統中,這種移植在大學中經常作為相關專業本科生畢業設計或者研究生課題的選題。

優勢

為什么有OpenCV

計算機視覺市場巨大而且持續增長,且這方面沒有標準API,如今的計算機視覺軟件大概有以下三種:

1、研究代碼(慢,不穩定,獨立并與其他庫不兼容)

2、耗費很高的商業化工具(比如Halcon, MATLAB+Simulink)

3、依賴硬件的一些特別的解決方案(比如視頻監控,制造控制系統,醫療設備)這是如今的現狀,而標準的API將簡化計算機視覺程序和解決方案的開發,OpenCV致力于成為這樣的標準API。

OpenCV致力于真實世界的實時應用,通過優化的C代碼的編寫對其執行速度帶來了可觀的提升,并且可以通過購買英特爾的IPP高性能多媒體函數庫(Integrated 表演 Primitives)得到更快的處理速度。右圖為OpenCV與當前其他主流視覺函數庫的性能比較。

應用領域

1、人機交互

2、物體識別

3、圖像分割

4、人臉識別

5、動作識別

6、運動跟蹤

7、機器人

8、運動分析

9、機器視覺

10、結構分析

11、汽車安全駕駛

其他相關

作者列表可以在AUTHORS文件中找到。

此外,還有很多人給出了建議、補丁、BUG 報告等等,在文件THANKS中對此有一個不完全的列表。

想要了解OpenCV的新特征,請參考OpenCV Change Log。

如果有問題,在谷歌中輸入"OpenCV"搜索。

如果在安裝/運行/使用OpenCV中遇到問題

1、閱讀FAQ中文。

2、在OpenCV 郵件列表中搜索。

3、加入到 雅虎 group 上的 OpenCV 郵件列表中(如何加入請參考 FAQs),并發送你的問題到郵件列表中。(這個郵件列表可能會遷移到OpenCV's SourceForge site)

4、參考 OpenCV 的例子代碼,閱讀參考手冊。

編程語言

OpenCV用C++語言編寫,它的主要接口也是C++語言,但是依然保留了大量的c語言接口。該庫也有大量的Python、Java and MATLAB/OCTAVE(版本2.5)的接口。這些語言的API接口函數可以通過在線文檔獲得。如今也提供對于C#、Ch、Ruby的支持。

所有新的開發和算法都是用C++接口。一個使用CUDA的GPU接口也于2010年9月開始實現。

系統支持

OpenCV可以在Windows,Android,Maemo,FreeBSDOpenBSD,iOS,Linux 和Mac OS等平臺上運行。使用者可以在 sourceforge 獲得官方版本,或者從 SVN 獲得開發版本。OpenCV也是用cmake。

在Windows上編譯OpenCV中與攝像輸入有關部分時,需要DirectShow SDK中的一些基類。該SDK可以從預先編譯的微軟 Platform SDK(or DirectX SDK 8.0 to 9.0c / DirectX Media SDK prior to 6.0)的子目錄Samples\Multimedia\DirectShow\BaseClasses獲得。

版本發布

2010年12月06日,OpenCV 2.2.0 正式版發布。

2011年06月25日,OpenCV-2.3.0rc 發布了,新增加了一個stitching拼接模塊,Android支持更加方便了,使用谷歌 test框架,其他變化主要是內部性能改進。

2013年07月03日,OpenCV 2.4.6發布。

主要更新是關于手持設備方面的:

首先,OpenCV 2.3的Android build終于變成了官方支持的NDK-Build的方式了。以前的方法相當讓人頭疼,使用的非Android官方的方法去寫JNI接口,tutorial跟著走一遍也不知道所以然。

其次,What’s new里面說道,新的Android支持是英偉達在開發。本來OpenCV就是支持CUDA顯卡加速的。

2013年12月31日,OpenCV 2.4.8發布。

2014年4月25日,OpenCV 2.4.9發布。

2014年8月21日,OpenCv 3.0 alpha版本發布。

2014年11月11日,OpenCv 3.0 beta版本發布。

2015年6月4日,OpenCV 3.0版本發布。

2015年7月30號,OpenCV2.4.12版本發布。

2015年12月21日,OpenCV3.1版本發布。

2016年12月23日,OpenCV3.2版本發布。

2017年8月3日,OpenCV3.3版本發布。

2018年7月4日,OpenCV3.4.2版本發布。

2018年11月18日,Opencv4.0.0版本發布。

參考資料 >

生活家百科家居網