OpenCV 元件結構全解析

2021-07-28 05:01:56 字數 2428 閱讀 8585

**:

我們進入到d:\programfiles\opencv\build\include目錄,可以看到有opencv和opencv2這兩個資料夾。顯然,opencv這個資料夾裡面包含著舊版的標頭檔案。

而opencv2這個資料夾裡面包含著具有時代意義的新版opencv2系列的標頭檔案。

在opencv這個資料夾裡面,也就是d:\program files\opencv\build\include\opencv目錄下,可以看到如下的各種標頭檔案。這裡面大概就是opencv 1.0最核心的,而且保留下來的內容的標頭檔案,可以把它們整體理解為乙個元件。

再來看看我們重點關注的opencv2這邊,

在d:\programfiles\opencv\build\include\opencv2目錄下,我們可以看到這些資料夾:

我們靈機一動,發現下面有個叫opencv_modules.hpp的hpp檔案,一看就知道裡面存放的是opencv2中的新模組構造相關的說明**,開啟一看,果不其然,定義的是opencv2所有元件的巨集:

下面就是opencv的所有模組介紹,按照順序來:

【calib3d】——其實就是就是calibration(校準)加3d這兩個詞的組合縮寫。這個模組主要是相機校準和三維重建相關的內容。基本的多視角幾何演算法,單個立體攝像頭標定,物體姿態估計,立體相似性演算法,3d資訊的重建等等。

【contrib】——也就是contributed/experimental stuf的縮寫, 該模組包含了一些最近新增的不太穩定的可選功能,不用去多管。2.4.8裡的這個模組有新型人臉識別,

立體匹配

,人工視網膜模型等技術。

【core】——核心功能模組,包含如下內容:

【imgproc

】——image和processing這兩個單詞的縮寫組合。影象處理模組,這個模組包含了如下內容:

【features2d】

——也就是features2d, 2d功能框架 ,包含如下內容:

【flann】

包含兩個部分:

【gpu】

——運用gpu加速的計算機視覺模組

【highgui】

——也就是high gui,高層gui圖形使用者介面,包含**的i / o輸入輸出,

【legacy】

【ml】

——machine learning,機器學習模組, 基本上是統計模型和分類演算法,包含如下內容:

【nonfree】

,也就是一些具有專利的演算法模組 ,包含特徵檢測和gpu相關的內容。最好不要商用,可能會被告哦。

【objdetect】

——目標檢測模組,包含cascade classification(級聯分類)和latent svm這兩個部分。

【ocl】

——即opencl-accelerated computer vision,運用opencl加速的計算機視覺元件模組

【photo】

——也就是computational photography,包含影象修復和影象去噪兩部分

【stitching】

——images stitching,影象拼接模組,包含如下部分:

【superres】

——superresolution,超解析度技術的相關功能模組

【ts】

——opencv測試相關**,不用去管他

【video】

【videostab】

OpenCV元件架構

calib3d calibration 校準 加3d這兩個詞的組合縮寫。這個模組主要是相機校準和三維重建相關的內容。基本的多視角幾何演算法,單個立體攝像頭標定,物體姿態估計,立體相似性演算法,3d資訊的重建等等。contrib contributed experimental stuf的縮寫,該模組...

opencv2 x檔案結構解析

1 opencv簡介 2 opencv模組結構 modular structure opencv擁有乙個模組結構,也就是說,opencv包 package 裡包含數個共享的或靜態的庫 libraries 分別如下 opencv doc opencv2refman.pdf p1 core.該模組定義了...

SpringMVC元件解析

前端控制器 dispatcherservlet 使用者請求到達前端控制器,它就相當於 mvc 模式中的 c,dispatcherservlet 是整個流程控制的中心,由 它呼叫其它元件處理使用者的請求,dispatcherservlet 的存在降低了元件之間的耦合性。對映方式,例如 配置檔案方式,實...