1. 程式人生 > >Learning OpenCV 3 學習筆記

Learning OpenCV 3 學習筆記

第一章 概述

當前模組:

core:是庫的一部分,包含基本物件型別和它們的基本操作。

imgproc:影象處理模組包含影象的基本變換,包括濾波器和類似的卷積運算子。

highgui (在OpenCV3.0中分成了imgcodecs, videoio, and highgui):此模組包含使用者介面功能,可用於顯示影象或進行簡單的使用者輸入。它可以被認為是一個非常輕量級的視窗UI工具包。

video:視訊庫包含讀取和寫入視訊流所需的函式。

calib3d:該模組包含校準單個攝像機以及立體或多攝像機陣列所需的演算法實現。

features2d:該模組包含用於檢測,描述和匹配關鍵點特徵的演算法。

objdetect:該模組包含用於檢測特定目標(例如面部或行人)的演算法。您可以訓練探測器以檢測其他物體。

ml:機器學習庫本身實際上是一個完整的庫,它包含各種機器學習演算法,這些演算法的實現方式是使用OpenCV的自然資料結構(natural data structures)。

flann:FLANN代表“近似最近鄰快速庫”。該庫包含您不可能直接使用的方法,但其他模組中的其他函式使用這些方法在大型資料集中進行最近鄰搜尋。

gpu(在OpenCV3.0中分成了多個cuda*模組):GPU庫包含為在CUDA GPU上操作而優化的大多數庫函式的實現。還有一些僅針對GPU操作實現的功能。其中一些提供了出色的結果,但需要足夠高的計算資源,以至於非GPU硬體上的實現幾乎沒有用處。

photo:這是一個相對較新的模組,包含對計算攝影有用的工具。

stitching:整個模組實現了複雜的影象拼接管道。這是庫中的新功能,但是,與照片模組一樣,它是預期未來增長的領域。

nonfree(在OpenCV3.0中移動到了opencv_contrib/xfeatures2d):OpenCV包含一些演算法的實現,這些演算法已獲得專利或受到使用限制(例如,SIFT演算法)的負擔。這些演算法被分隔成他們自己的模組,表明你需要做一些特殊的工作才能在商業產品中使用它們。

contrib:該模組包含尚未整合到整個庫中的新內容。

legacy(在OpenCV3.0中去掉):這個模組包含了尚未從庫中消除的舊事物。

ocl (在OpenCV3.0中去掉;以T-API technology替代):這是一個較新的模組,可以被認為類似於GPU模組,除了它實現了用於開放式並行程式設計的Khronos OpenCL標準。雖然此時功能遠不如GPU模組,但ocl模組旨在提供可在任何GPU或其他支援Khronos的並行裝置上執行的實現。 (這與gpu模組形成對比,後者明確地使用了NVidia CUDA工具包,因此僅適用於NVidia GPU裝置。)

OpenCV貢獻儲存庫中的一些可用模組:

Dnn:深度神經網路

face:人臉識別

text:文字檢測和識別;可以選擇使用開源OCR Tesseract作為後端

rgbd:處理RGB +深度圖,使用Kinect和其他深度感測器獲得(或使用立體匹配演算法簡單計算)

bioinspired:仿生視覺

ximgproc,xphoto:先進的影象處理和計算攝影演算法

tracking:現代目標跟蹤演算法