OpenCV3學習總結

2021-10-07 23:23:27 字數 3329 閱讀 9154

影象處理技術一般包括影象壓縮,增強和復原,匹配、描述和識別3個部分。影象處理和計算機視覺的區別在於:影象處理側重於「處理」影象——如增強、還原、去噪、分割等;而計算機視覺重點在於使用計算機來模擬人的視覺。

opencv由一系列c函式和c++類構成,擁有包括500多個c函式的跨平台的中高層api。opencv還提供mll機器學習庫,該機器學習庫主要用於統計方面的模式識別和聚類。opencv可用於解決如下領域的問題:人機互動、物體識別、影象分割槽、人臉識別、動作識別、運動跟蹤、機械人。

opencv基本架構分析:...\opencv\build\include目錄,其中有opencv和opencv2。opencv資料夾包含舊版的標頭檔案,而opencv2包含著新版opencv2系列的標頭檔案。

opencv所有模組:

(1)【calib3d】——該模組主要是相機校準和三維重建相關的內容,包括基本的多視角幾何演算法、單個立體攝像頭標定、物體姿態估計、立體相似性演算法、3d資訊的重建等。

(2)【contrib】——該模組新增了新型人臉識別、立體匹配、人工視網膜模型等技術。

(3)【core】——核心功能模組,包含opencv基本資料結構、動態資料結構、繪圖函式、陣列操作相關函式、輔助功能與系統函式和巨集、與opengl的互操作。

(4)【imgproc】——圖形處理模組,包含線性和非線性的影象濾波、影象的幾何變換、其他影象轉換、直方圖相關、結構分析和形狀描述、運動分析和形狀描述、運動分析和物件跟蹤、特徵檢測、目標檢測等內容

(5)【features2d】——2d功能框架,包含特徵檢測和描述、特徵檢測器通用介面、描述符提取器通用介面、描述符匹配器通用介面、通用描述符匹配器通用介面、關鍵點繪製函式和匹配功能繪製函式

(6)【flann】——高維的近似近鄰快速搜尋演算法庫,包含快速近鄰最近鄰搜尋、聚類

(7)【gpu】——運用gpu加速的計算機視覺模組

(9)【legacy】——一些已經廢棄的**庫,保留下來作為向下相容,包含運動分析、期望最大化、直方圖、平面細分、特徵檢測和描述、描述符提取器的通用介面、通用描述符的常用介面、匹配器

(10)【ml】——機器學習模組,基本上是統計模型和分類演算法,包含統計模型、一般貝葉斯分類器、k-近鄰、支援向量機、決策樹、提公升、梯度提高樹、隨機數、超隨機數、期望最大化、神經網路、mldata

(11)【nonfee】——一些具有專利的演算法模組,包含特徵檢測和gpu相關的內容。

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

(13)【ocl】——運用opencl加速的計算機視覺元件模組

(14)【photo】——包含影象修復和影象去噪兩部分

(15)【stitching】——影象拼接模組,包含拼接流水線、特點尋找和匹配影象、估計旋轉、自動校準、歪斜、接縫估測、**補償、混合

(16)【superres】——超解析度技術的相關模組

(17)【ts】——opencv測試相關**

opencv.hpp中包含了opencv各模組的標頭檔案,故編寫程式時,可寫上「#include」即可。

argc與ar**引數:arg指的是「引數」,其中,argc為整數,用來統計執行程式時送給main函式的命令列引數的個數;*ar**:為字串陣列,用來存放指向字串引數的指標陣列,每乙個元素指向乙個引數。

int argc表示命令行字串的個數;

char *ar**表示命令行引數的字串。

以下是參考  深度和通道的理解

矩陣資料型別:

cv_(s|u|f)c

s =符號整型u =無符號整型f =浮點型

e.g.:

cv_8uc1是指乙個8位無符號整型單通道矩陣,

cv_32fc2是指乙個32位浮點型雙通道矩陣

cv_8uc1cv_8sc1cv_16u c1cv_16sc1

cv_8uc2cv_8sc2cv_16uc2cv_16sc2

cv_8uc3cv_8sc3cv_16uc3cv_16sc3

cv_8uc4cv_8sc4cv_16uc4cv_16sc4

cv_32sc1cv_32fc1cv_64fc1

cv_32sc2cv_32fc2cv_64fc2

cv_32sc3cv_32fc3cv_64fc3

cv_32sc4cv_32fc4cv_64fc4

其中,通道表示每個點能存放多少個數,類似於rgb彩色圖中的每個畫素點有三個值,即三通道的。

中的深度表示每個值由多少位來儲存,是乙個精度問題,一般是8bit(位)的,則深度是8.

opencv3學習 reshape函式

在opencv中,reshape函式比較有意思,它既可以改變矩陣的通道數,又可以對矩陣元素進行序列化,非常有用的乙個函式。函式原型 c mat mat reshape int cn,int rows 0 const引數比較少,但設定的時候卻要千萬小心。cn 表示通道數 channels 如果設為0,...

Opencv3入門學習筆記

最近在學習opencv3,屬於零基礎小白,此篇記錄一些在書中見到的函式,用於後來學習 一 影象的載入與顯示 c mat imread const string filename,intflags 1 flags 0返回乙個3通道的彩色影象 flags 0返回灰度影象。flags 0返回包含alpha...

OpenCv3程式設計學習一

之前學習的時候有裝過opencv,版本是3.4.而對應的visual studio是2017版本。所以直接開始建立了控制台專案,命名為2020.620.放在了d盤的vs opencvdemo 配置是vc15 大部分參考自 需要注意的是 首先關於的路徑名,可以是相對路徑,也就是存放在當前目錄下 也就是...