OpenCV

維基百科,自由的百科全書
跳至導覽 跳至搜尋
OpenCV
File:OpenCV logo black.svg
原作者英特爾柳樹車庫英語Willow Garage Itseez
首次釋出2000年6月,​26年前​(2000-06
目前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    原始碼庫
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    程式語言CC++PythonJava匯編語言
    引擎
      Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
      作業系統跨平臺WindowsLinuxmacOSFreeBSDNetBSDOpenBSDAndroidiOSMaemoBlackBerry 10
      平台IA-32, x86-64
      檔案大小~200 MB
      語言英語
      類型函式庫
      特許條款Apache
      網站opencv.orgopencv.ai

      OpenCV的全稱是Open Source Computer Vision Library,是一個跨平台的電腦視覺庫。OpenCV是由英特爾公司發起並參與開發,以BSD特許條款授權發行,可以在商業和研究領域中免費使用。OpenCV可用於開發即時的圖像處理電腦視覺以及模式辨識程式。2011年起,OpenCV開始支援GPU即時加速運算[1]

      歷史[編輯]

      OpenCV專案最早由英特爾公司於1999年啟動,致力於CPU密集型的任務,是一個包括如光線追蹤3D顯示的計劃的一部分。早期OpenCV的主要目標是

      • 為推進機器視覺的研究,提供一套開源且最佳化的基礎庫。不重造輪子
      • 提供一個共同的基礎庫,使得開發人員的代碼更容易閱讀和轉讓,促進了知識的傳播。
      • 透過提供不需要開源或免費的軟件特許,促進商業應用軟件的開發。

      OpenCV的第一個預覽版本於2000年在國際電腦視覺與模式辨識會議公開,並且陸續提供了五個測試版本。1.0版本於2006年發佈。

      OpenCV的第二個主要版本是2009年10月的OpenCV 2.0。該版本的主要更新包括C++介面,更容易、更類型安全的模式,新的函數,以及對現有實現的最佳化(特別是多核心方面)。現在每6個月就會有一個官方版本[2],並由一個商業公司贊助的獨立小組進行開發。

      在2012年8月,OpenCV的營運由一個非牟利組織(OpenCV.org)來提供,並保留了一個開發者網站[3]和用戶網站。[4]

      應用領域[編輯]

      OpenCV可用於解決如下領域的問題:

      程式語言[編輯]

      OpenCV用C++語言編寫,它的主要介面也是C++語言,但是依然保留了大量的C語言介面。該庫也有大量的PythonJavaMATLAB/OCTAVE(版本2.5)的介面。這些語言的API介面函數可以透過線上文件取得[5]。現在也提供對於C#Ch英語Ch (computer programming)[6]的支援。在 3.4 版本中,釋出了OpenCV函數的JavaScript綁定,稱為OpenCV.js。

      硬件加速[編輯]

      如果OpenCV在系統中找到了英特爾整合效能原語,它就會使用最佳化的常式去加速執行。

      CUDA為基礎的圖形處理器(GPU)介面於2010年9月起開展[7]

      OpenCL為基礎的GPU介面則從2012年10月起開啟[8],2.4.13.3版的相關檔案可以在docs.opencv.org閱覽[9]

      作業系統支援[編輯]

      OpenCV可以在WindowsAndroid[10]Maemo[11]FreeBSDOpenBSDiOS[12]LinuxMac OS等平台上執行。另外也可以在流動裝置的系統上運行,諸如:Android, iOS, Maemo,[13] BlackBerry 10 以及 QNX.[14]用戶可以在Github獲得官方版本,或者從Git獲得開發版本。OpenCV使用CMake

      Windows 作業系統需求[編輯]

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

      參考文獻[編輯]

      1. ^ CUDA. opencv.org. [2020-10-15]. (原始內容存檔於2025-01-31). 
      2. ^ OpenCV change logs: 存档副本. [2012-11-20]. (原始內容存檔於2013-01-15). 
      3. ^ OpenCV Developer Site: http://code.opencv.org Archive.today存檔,存檔日期2013-01-13
      4. ^ OpenCV User Site: http://opencv.org/頁面存檔備份,存於互聯網檔案館
      5. ^ OpenCV C interface: http://docs.opencv.org頁面存檔備份,存於互聯網檔案館
      6. ^ Ch OpenCV: http://www.softintegration.com/products/thirdparty/opencv/頁面存檔備份,存於互聯網檔案館
      7. ^ Cuda GPU port. (原始內容存檔於2016-05-21). 
      8. ^ OpenCL Announcement: http://opencv.org/opencv-v2-4-3rc-is-under-way.html 互聯網檔案館存檔,存檔日期2019-02-17.
      9. ^ OpenCL-accelerated Computer Vision API Reference: http://docs.opencv.org/modules/ocl/doc/ocl.html頁面存檔備份,存於互聯網檔案館
      10. ^ Android port: 存档副本. [2012-12-30]. (原始內容存檔於2012-11-26). 
      11. ^ Maemo port: https://garage.maemo.org/projects/opencv頁面存檔備份,存於互聯網檔案館
      12. ^ iPhone port: http://www.eosgarden.com/en/opensource/opencv-ios/overview/頁面存檔備份,存於互聯網檔案館
      13. ^ Port of Intel's Open Source Computer Vision Library (OpenCV) to Maemo. Maemo Garage. 10 August 2011 [2023-01-30]. (原始內容存檔於2016-03-17). 
      14. ^ hungc. Blackberry Port of OpenCV [partial]. GitHub. 4 September 2019 [2024-11-24]. (原始內容存檔於2018-06-11). 

      外部連結[編輯]