vinjn張靜
3 年前
本文原版是譯作《opencv 2 計算機視覺程式設計手冊》的附錄,經過刪減後在專欄中刊登。
opencv 3 就要正式發布了,但是很多讀者還在用 opencv 2,甚至 opencv 1。你們一定想知道,是否有必要公升級到 3,以及如何提前進行準備。
cmake/,包含生成工程專案時 cmake 的依賴檔案,用於智慧型搜尋第三方庫,普通開發者不需要關心這個資料夾的內容。
data/,包含 opencv 庫以及範例中用到的資源檔案,haar 物體檢測的分類器位於haarcascades子檔案中。
doc/,包含生成文件所需的原始檔以及輔助指令碼。
include/,包含入口標頭檔案。opencv 子資料夾中是 c 語言風格的api,也就是《learning opencv (第一版)》中描述的api函式,官方將逐漸淘汰 c 風格函式,因此我不推薦大家使用該資料夾中的標頭檔案。opencv2 子檔案中只有乙個 opencv.hpp 檔案,這是 cv2 以及 cv3 推薦使用的標頭檔案。
modules/,包含核心**,opencv 真正的**都在這個資料夾中。opencv 從2.0開始以模組的方式組織各種功能,近兩年模組的數量增長得很快,後面我會依次介紹每個模組的作用。
platforms/,包含交叉編譯所需的工具鏈以及額外的**,交叉編譯指的是在乙個作業系統中編譯供另乙個系統使用的檔案。
androidcamera/,僅用於android平台,使得可以通過與其他平台相同的介面來控制android裝置的相機。
core/,核心功能模組,定義了基本的資料結構,包括最重要的 mat 類、xml 讀寫、opengl三維渲染等。
imgproc/,全稱為 image processing,即影象處理。包括影象濾波、集合影象變換、直方圖計算、形狀描述子等。影象處理是計算機視覺的重要工具。
imgcodec/,負責各種格式的的讀寫,這個模組是從以前的 highgui 中剝離的。
highgui/,高階圖形介面及與 qt 框架的整合。
calib3d/,相機標定以及三維重建。相機標定用於去除相機自身缺陷導致的畫面形變,還原真實的場景,確保計算的準確性。三維重建通常用在雙目視覺(立體視覺),即兩個標定後的攝像頭觀察同乙個場景,通過計算兩幅畫面中的相關性來估算畫素的深度。
features2d/,包含 2d 特徵值檢測的框架。包含各種特徵值檢測器及描述子,例如 fast、mser、obrb、brisk等。各類特徵值擁有統一的演算法介面,因此在不影響程式邏輯的情況下可以進行替換。
objdetect/,物體檢測模組。包括haar分類器、svm檢測器及文字檢測。
ml/,全稱為 machine learning,即機器學習。包括統計模型、k最近鄰、支援向量機、決策樹、神經網路等經典的機器學習演算法。
flann/,用於在多維空間內聚類及搜尋的近似演算法,做影象檢索的讀者對它不會陌生。
photo/,計算攝影學。包括影象修補、去噪、hdr成像、非真實感渲染等。如果讀者想實現photoshop的高階功能,那麼這個模組必不可少。
stitching/,影象拼接,可用於製作全景圖。
nonfree/,受專利保護的演算法。包含sift和surf,從功能上來說這兩個演算法屬於features2d模組的,但由於它們都是受專利保護的,想在專案中可能需要專利方的許可。
shape/,形狀匹配演算法模組。用於描述形狀、比較形狀。
softcascade/,另一種物體檢測演算法,soft cascade 分類器。包含檢測模組和訓練模組。
superres/,全稱為 super resolution,用於增強影象的解析度。
viz/,三維視覺化模組。可以認為這個模組實現了乙個簡單的三維視覺化引擎,有各種ui控制項和鍵盤、滑鼠互動方式。底層實現基於 vtk 這個第三方庫。
這些模組的名稱都以 cuda 為開始,cuda 是顯示卡製造商 nvidia 推出的通用計算語言,在cv3中有大量的模組已經被移植到了 cuda 語言。讓我們依次看一下:
cuda/,cuda-加速的計算機視覺演算法,包括資料結構 cuda::gpumat、 基於cuda的相機標定及三維重建等。
cudaarithm/,cuda-加速的矩陣運算模組。
cudafeatures2d/,cuda-加速的特徵檢測與描述模組,與features2d/模組功能類似。
cudafilters/,cuda-加速的影象濾波。
cudaimgproc/,cuda-加速的影象處理演算法,包含直方圖計算、霍夫變換等。
cudaoptflow/,cuda-加速的光流檢測演算法。
cudastereo/,cuda-加速的立體視覺匹配演算法。
cudawarping/,實現了 cuda-加速的快速影象變換,包括透視變換、旋轉、改變尺寸等。
cudaev/,實現 cuda 版本的核心功能,類似 core/ 模組中的基礎演算法。
OpenCV 3 最新模組一次看個夠
6 個月前 opencv 3 就要正式發布了,但是很多讀者還在用 opencv 2,甚至 opencv 1。你們一定想知道,是否有必要公升級到 3,以及如何提前進行準備。cmake 包含生成工程專案時 cmake 的依賴檔案,用於智慧型搜尋第三方庫,普通開發者不需要關心這個資料夾的內容。data 包...
OpenCV 3 最新模組一次看個夠
opencv 3 就要正式發布了,但是很多讀者還在用 opencv 2,甚至 opencv 1。你們一定想知道,是否有必要公升級到 3,以及如何提前進行準備。cmake 包含生成工程專案時 cmake 的依賴檔案,用於智慧型搜尋第三方庫,普通開發者不需要關心這個資料夾的內容。data 包含 open...
OpenCv3程式設計學習一
之前學習的時候有裝過opencv,版本是3.4.而對應的visual studio是2017版本。所以直接開始建立了控制台專案,命名為2020.620.放在了d盤的vs opencvdemo 配置是vc15 大部分參考自 需要注意的是 首先關於的路徑名,可以是相對路徑,也就是存放在當前目錄下 也就是...