OpenCV是一個跨平台的庫,使用它我們可以開發實時的計算機視覺應用程式。 它主要集中在影象處理,視訊採集和分析,包括人臉檢測和物體檢測等功能。
這一章,讓我們通過定義術語「計算機視覺」來開始。
計算機視覺可以被定義為一個學科,解釋如何根據場景中存在的結構的屬性,從其2D影象重構,中斷和理解3D場景。 它使用計算機軟體和硬體處理建模和複製人類視覺。
計算機視覺與以下領域顯著重疊 -
計算機視覺與影象處理
影象處理涉及影象到影象的轉換。 影象處理的輸入和輸出都是影象。
計算機視覺是從物體形象中對物理物體進行明確而有意義的描述。 計算機視覺的輸出是對3D場景中結構的描述或解釋。
在這裡,我們列舉了計算機視覺大量使用的一些主要領域。
機器人應用
醫學應用
工業自動化應用
安全應用
交通運輸應用
使用OpenCV庫,可以 -
OpenCV最初是用C++開發的。 除此之外,還提供了Python和Java系結。 OpenCV可以在各種作業系統上執行,如Windows,Linux,OSx,FreeBSD,Net BSD,Open BSD等。
本教學通過使用Java系結的範例解釋了OpenCV的概念。
以下是OpenCV庫的主要庫模組。
核心功能
該模組涵蓋了用於構建OpenCV應用程式的基本資料結構,如標量,點,範圍等。 除此之外,還包括用於儲存影象的多維陣列Mat
。 在OpenCV的Java庫中,這個模組包含在一個名字為org.opencv.core
的包內。
影象處理
該模組涵蓋了各種影象處理操作,如影象過濾,幾何影象轉換,顏色空間轉換,直方圖等。在OpenCV的Java庫中,該模組包含在一個名稱為org.opencv.imgproc
的包內。
視訊
本模組涵蓋了運動估測,背景扣除和物件跟蹤等視訊分析概念。 在OpenCV的Java庫中,這個模組包含在一個名字為org.opencv.video
的包內。
視訊I/O
本模組解釋了使用OpenCV庫的視訊捕獲和視訊編解碼器。 在OpenCV的Java庫中,該模組由名稱為org.opencv.videoio
的包提供。
calib3d
該模組包括有關基本多檢視幾何演算法,單個和立體攝像機標定,物件姿態估計,立體對應和三維重建元素的演算法。 在OpenCV的Java庫中,該模組由名稱為org.opencv.calib3d
的軟體包提供。
features2d
該模組包含特徵檢測和描述的概念。 在OpenCV的Java庫中,該模組由名稱org.opencv.features2d
的包提供。
Objdetect
該模組包括檢測物件和預定義類的範例,例如面孔,眼睛,杯子,人物,汽車等。在OpenCV的Java庫中,該模組由名稱為org.opencv.objdetect
的包提供。
Highgui
這是一個易於使用的介面,具有簡單的UI功能。 在OpenCV的Java庫中,這個模組的功能包含在兩個不同的包中,即org.opencv.imgcodecs
和org.opencv.videoio
。
OpenCV最初是英特爾研究計劃,為CPU密集型應用提供建議。 它於1999年正式啟動。