OpenCV

OpenCV

跨平台計算機視覺和機器學習軟件庫
OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個基于(開源)發行的跨平台計算機視覺庫,[1]可以運行在Linux、Windows和Mac OS操作系統上。它輕量級而且高效——由一系列C函數和少量C++類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
    軟件名稱: 軟件平台:Linux、Windows、Android、Mac OS等 軟件語言:C++ 開發商: 軟件授權:Intel、Willow Garage、NVIDIA等 軟件版本:OpenCV–4.3.0 軟件大小:1.16 中文名:開源計算機視覺庫 外文名:Open Source Computer Vision Library 别名:opencv 使用類型:提供Python、Ruby、MATLAB接口 結構:C函數和少量C++類構成

定義

OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。最新版本是3.0.0beta,2014年11月11日發布。

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

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

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

曆史發展

1999年1月,CVL項目啟動。主要目标是人機界面,能被UI調用的實時計算機視覺庫,為Intel處理器做了特定優化。

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.

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

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

優勢

為什麼有OpenCV

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

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

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

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

OpenCV緻力于真實世界的實時應用,通過優化的C代碼的編寫對其執行速度帶來了可觀的提升,并且可以通過購買Intel的IPP高性能多媒體函數庫(Integrated Performance Primitives)得到更快的處理速度。右圖為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,FreeBSD, OpenBSD, iOS,Linux 和Mac OS等平台上運行。使用者可以在 SourceForge獲得官方版本,或者從SVN獲得開發版本。OpenCV也是用CMake.

Windows prerequisites

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

版本發布

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

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

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

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

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

其次,What’s new裡面說道,新的Android支持是NVidia在開發。本來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版本發布。

相關詞條

相關搜索

其它詞條