本節書摘來自華章計算機《opencv圖像處理》一書中的第1章,第1.1節,作者:[西]葛羅瑞亞·布埃諾·加西亞(gloria bueno garcía)著,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視
本章概述opencv及其安裝以及第一個基本程式,将介紹如下一些内容:為初學者簡略介紹opencv,接着給出一個簡單易學的庫的安裝步驟指南。在完成使用者本地硬碟上的安裝之後,快速了解一下opencv的結構。快速掌握使用具有某些通用程式設計架構的庫來建立項目的方法。如何使用函數讀、寫圖像和視訊。最後,介紹如何通過庫函數為軟體項目添加豐富的使用者界面,包括滑鼠互動、基本繪圖形以及qt支援。
opencv(open source computer vision,開源計算機視覺類庫)最初由intel開發,是一個進行實時圖像處理的免費跨平台庫,對于一切與計算機視覺有關的事務處理,opencv已經成為一個實際上的标準庫工具。opencv的第一版于2000年正式釋出,獲得了bsd許可。從那時起,在該科學研究領域,opencv的功能已經非常豐富。2012年,非盈利組織opencv.org開始負責為開發者和使用者維護一個支援網站。
在編寫本書時,一個新的opencv(3.0版本)主要版本已經可用,但仍在測試狀态。本書将介紹這個新版本帶來的最新相關變化。
opencv對大部分流行的作業系統可用,例如:gnu/linux、os x、windows、android、ios等。第一次實作時使用的是c程式設計語言;但從2.0版本開始,由于使用c++實作使得opencv更加流行。新的函數都是采用c++語言編寫的。然而,如今的庫對于其他程式設計語言(例如:java、python和matlab/octave)提供了一個完整的接口。而且,已經開發出了對其他語言(例如:c#、ruby和perl)的封裝包,以鼓勵程式員采用。
為了使計算密集型視覺任務的性能最大化,opencv包括以下支援:
用一個線程構模組化塊(threading building block,tbb)來支援多核計算機上的多線程——由intel開發的一個模闆庫。
用intel處理器上的一個內建性能函數庫(integrated performance primitive,ipp)子集來提升性能。感謝intel使這些函數在3.0測試版本上免費可用。
使用計算統一裝置架構(compute unif?ied device architecture,cuda)和開放計算語言(open computing language,opencl)提供圖形處理器(graphic processing unit,gpu)上的處理接口。
opencv的應用包括分割與識别、二維和三維特征工具包、對象識别、人臉識别、運動跟蹤、手勢識别、圖像拼接、高動态範圍(high dynamic range,hdr)成像、增強現實等領域。另外,為了支援上面某些應用領域,它還包含了一個具有統計機器學習功能的子產品。