天天看點

OpenCV4 中各子產品函數整理

1、資料載入、顯示與儲存

函數名稱 函數說明
imread() 讀取圖像檔案
namedWindow() 建立一個顯示圖像的視窗
imshow() 在指定視窗中顯示圖像
VideoCapture() 調用攝像頭或者讀取、儲存視訊檔案
imwrite() 儲存圖像到檔案
VideoWriter() 将多幀圖像儲存成視訊檔案
FileStorage() 讀取或者儲存XML、YAML檔案

2、圖像基本操作

函數名稱 函數說明
cvtColor() 圖像顔色空間轉換
convertTo() 圖像資料類型轉換
split() 圖像多通道分離
merge() 圖像對通道合并
minMaxLoc() 尋找矩陣中的最大值和最小值,以及最大值和最小值在矩陣中的位置
reshape() 改變矩陣尺寸和通道數
mean() 計算矩陣每個通道的平均值
meanStdDev() 計算矩陣每個通道的平均值和标準差
max() / min() 比較圖像每個元素灰階值的較大值 / 較小值
bitwise_and() 像素求 “與” 運算
bitwise_or() 像素求 “或” 運算
bitwise_xor() 像素求 “異或” 運算
bitwise_not() 像素求 “非” 運算
threshold() 像素門檻值操作
adaptiveThreshold() 圖像的二值化
LUT() 顯示查找表
vconcat() / hconcat() 圖像豎向連接配接 / 圖像橫向連接配接
resize() 改變圖像尺寸
flip() 圖像翻轉變換
warpAffine() 圖像仿射變換
warpPerspective() 圖像透視變換
warpPolar() 圖像極坐标變換
circle() 在圖像中繪制圓形
line() 在圖像中根據兩點繪制一條直線
ellipse() 在圖像中繪制橢圓
ellipse2Poly() 在圖像中通過矩形邊界繪制橢圓
rectangle() 在圖像中繪制矩形
fillPoly() 在圖像中繪制多邊形
putText() 在圖像中生成文字
copyTo() 圖像深拷貝
pyrDown() 圖像下采樣
pyrUp() 圖像上采樣
createTrackbar() 在圖像視窗建立滑動條
setMouseCallback() 滑鼠事件響應

3、圖像直方圖與模闆比對

QT開發交流+赀料君羊:714620761
函數名稱 函數說明
calcHist() 繪制圖像直方圖
normalize() 資料歸一化
compareHist() 直方圖比較
equalizeHist() 直方圖均衡化
calcBackProject() 直方圖反向投影
matchTemplate() 圖像模闆比對

4、圖像濾波

函數名稱 函數說明
filter2D() 卷積操作
rand() 生成随機數
fill() 産生均勻分布或高斯分布的随機數
blur() 均值濾波
boxFilter() 方框鋁箔
sqrBoxFilter() 擴充方框濾波
GaussianBlur() 高斯濾波
sepFilter2D() 雙方向卷積濾波
medianBlur() 中值濾波
bilateralFilter() 雙邊濾波
convertScaleAbs() 計算矩陣絕對值
Sobel() Sobel 算子邊緣檢測
Scharr() Scharr 算子邊緣濾波
getDerivKernels() 生成邊緣檢測濾波器
Laplacian() Laplacian 算子邊緣檢測
Canny() Canny 算法邊緣檢測

5、圖像形态學操作

函數名稱 函數說明
distanceTransform() 圖像像素距離交換
connectedComponents() 圖像連通域計算
connectedComponentsWithStats() 含有更多統計資訊的連通域計算
getStructuringElement() 擷取圖像形态學濾波的矩陣結構元素
erode() 腐蝕運算
dilate() 膨脹運算
morphologyEx() 形态學操作
thinning() 圖像細化

6、目标檢測

函數名稱 函數說明
HoughLines() 霍夫變換檢測直線
HoughLinesP() 霍夫變換檢測直線的兩個端點
HoughLinesPointSet() 二維點集中檢測直線
fitLine() 拟合直線
HoughCircles() 霍夫變換檢測圓
findContours() 計算輪廓
drawContours() 繪制輪廓
contourArea() 計算輪廓面積
arcLength() 計算輪廓長度
boundingRect() 輪廓外接最大矩形
minAreaRect() 輪廓外接最小矩形
approxPolyDP() 輪廓多邊形逼近
pointPolygonTest() 點到輪廓距離
convexHull() 凸包檢測
moments() 計算圖像矩
HuMoments() 計算 Hu 矩
matchShapes() 基于 Hu 矩的輪廓比對
minEnclosingTriangle() 二維點集的最小三角形拟合
minEnclosingCircle() 二維點集的最小圓形拟合
detectAndDecode() QR二維碼檢測與識别

7、圖像分析與修複

函數名稱 函數說明
dft() 傅裡葉變換
idft() 傅裡葉逆變換
getOptimalDFTSize() 計算矩陣傅裡葉變換的最優尺寸
copyMakeBorder() 擴充圖像尺寸
magnitude() 計算二維向量的幅值
mulSpectrums() 複數矩陣乘法運算
dct() 離散餘弦變換
idct() 離散餘弦變換的逆變換
integral() 計算積分圖像
floodFill() 漫水填充法
watershed() 分水嶺法
grabCut() Grabcut 法
pyrMeanShiftFiltering() Mean-Shift 法
TermCriteria() 疊代算法終止條件
inpaint() 圖像修複

8、特征點檢測與比對

函數名稱 函數說明
drawKeypoints() 繪制關鍵點
cornerHarris() 計算角點 Harris 評價系數
goodFeaturesToTrack() 檢測 Shi-Tomas 角點
cornerSubPix() 計算亞像素級别角點
Feature2D::detect() 計算特征點中的關鍵點
Feature2D::compute() 計算特征點中的描述子
Feature2D::detectAndCompute() 同時計算特征點中的關鍵點和描述子
drawMatches() 繪制特征點比對結果
FlannBasedMatcher() FLANN 算法描述子比對
findHomography() 計算單應性矩陣

9、立體視覺

函數名稱 函數說明
convertPointsToHomogenous() 非齊次坐标向齊次坐标轉換
convertPointsFromHomogenous() 齊次坐标向非齊次坐标轉換
findChessboardCorners() 棋盤格内角點檢測
find4QuadCornerSubpix() 内角點位置優化
findCirclesGrid() 圓形網格的圓心檢測
drawChessboardCorners() 繪制棋盤格的内角點或者圓形網格的圓心
undistort() 圖像去畸變校正
projectPoints() 單目相機空間點向圖像投影
solvePnP() 計算位姿關系
Rodrigues() 旋轉向量與旋轉矩陣互相轉換
stereoCalibrate() 雙目相機标定
stereRectufy() 雙目相機畸變校正

10、視訊分析

函數名稱 函數說明
absdiff() 計算兩個圖像內插補點的絕對值
meanShift() 均值遷移法的目标跟蹤
selectROI() 通過滑鼠在圖像中選擇感興趣區域
CamShift() 自适應均值遷移法目标跟蹤
calcOpticalFlowFarneback() Farneback 多項式擴充算法光流跟蹤
cartToPolar() 計算二維向量的模長與方向
calcOpticalFlowPyrLK() LK稀疏光流法跟蹤

11、OpenCV 與機器學習

函數名稱 函數說明
kmeans() K 均值聚類
StatModel::train() 模型訓練
TrainData::create() 建立訓練資料結構
StatModel::predict() 利用模型對新資料進行預測
Algorithm::load() 加載模型
KNearest::findNearest() K 近鄰模型對新資料進行預測
DTrees::create() 初始化決策樹類型變量
RTrees::create() RTrees 類的初始化
SVM::create() 定義 PtrCSV 類型的變量
dnn::readNet() 加載已有深度神經網絡模型
dnn::Net::setInput() 向深度神經網絡中輸入新的資料
dnn::blobFromImages() 轉換輸入到深度神經網絡模型中的圖像尺寸

繼續閱讀