OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
G-API影片處理功能

詳細描述

函式

GMat cv::gapi::BackgroundSubtractor (const GMat &src, const cv::gapi::video::BackgroundSubtractorParams &bsParams)
 基於高斯混合模型或 K 近鄰的背景/前景分割演算法。此操作生成前景掩膜。
 
std::tuple< GArray< GMat >, GScalarcv::gapi::buildOpticalFlowPyramid (const GMat &img, const Size &winSize, const GScalar &maxLevel, bool withDerivatives=true, int pyrBorder=BORDER_REFLECT_101, int derivBorder=BORDER_CONSTANT, bool tryReuseInputImage=true)
 構建可傳遞給 calcOpticalFlowPyrLK 的影像金字塔。
 
std::tuple< GArray< Point2f >, GArray< uchar >, GArray< float > > cv::gapi::calcOpticalFlowPyrLK (const GArray< GMat > &prevPyr, const GArray< GMat > &nextPyr, const GArray< Point2f > &prevPts, const GArray< Point2f > &predPts, const Size &winSize=Size(21, 21), const GScalar &maxLevel=3, const TermCriteria &criteria=TermCriteria(TermCriteria::COUNT|TermCriteria::EPS, 30, 0.01), int flags=0, double minEigThresh=1e-4)
 
std::tuple< GArray< Point2f >, GArray< uchar >, GArray< float > > cv::gapi::calcOpticalFlowPyrLK (const GMat &prevImg, const GMat &nextImg, const GArray< Point2f > &prevPts, const GArray< Point2f > &predPts, const Size &winSize=Size(21, 21), const GScalar &maxLevel=3, const TermCriteria &criteria=TermCriteria(TermCriteria::COUNT|TermCriteria::EPS, 30, 0.01), int flags=0, double minEigThresh=1e-4)
 使用金字塔的迭代 Lucas-Kanade 方法計算稀疏特徵集的光流。
 
GMat cv::gapi::KalmanFilter (const GMat &measurement, const GOpaque< bool > &haveMeasurement, const cv::gapi::KalmanParams &kfParams)
 
GMat cv::gapi::KalmanFilter (const GMat &measurement, const GOpaque< bool > &haveMeasurement, const GMat &control, const cv::gapi::KalmanParams &kfParams)
 標準卡爾曼濾波演算法 http://en.wikipedia.org/wiki/Kalman_filter
 

函式文件

◆ BackgroundSubtractor()

GMat cv::gapi::BackgroundSubtractor ( const GMat & src,
const cv::gapi::video::BackgroundSubtractorParams & bsParams )

#include <opencv2/gapi/video.hpp>

基於高斯混合模型或 K 近鄰的背景/前景分割演算法。此操作生成前景掩膜。

返回
輸出影像是前景掩膜,即 8 位無符號 1 通道(二值)矩陣 CV_8UC1
注意
功能文字ID為 "org.opencv.video.BackgroundSubtractor"
引數
src輸入影像:浮點幀不經過縮放使用,應在 [0,255] 範圍內。
bsParams背景減法器核心的初始化引數集。

◆ buildOpticalFlowPyramid()

std::tuple< GArray< GMat >, GScalar > cv::gapi::buildOpticalFlowPyramid ( const GMat & img,
const Size & winSize,
const GScalar & maxLevel,
bool withDerivatives = true,
int pyrBorder = BORDER_REFLECT_101,
int derivBorder = BORDER_CONSTANT,
bool tryReuseInputImage = true )

#include <opencv2/gapi/video.hpp>

構建可傳遞給 calcOpticalFlowPyrLK 的影像金字塔。

注意
功能文字ID為 "org.opencv.video.buildOpticalFlowPyramid"
引數
img8 位輸入影像。
winSize光流演算法的視窗大小。必須不小於 calcOpticalFlowPyrLK 的 winSize 引數。需要它來計算金字塔層所需的填充。
maxLevel基於 0 的最大金字塔層數。
withDerivatives設定為預計算每個金字塔層的梯度。如果金字塔在沒有梯度的情況下構建,則 calcOpticalFlowPyrLK 將在內部計算它們。
pyrBorder金字塔層的邊界模式。
derivBorder梯度的邊界模式。
tryReuseInputImage如果可能,將輸入影像的 ROI 放入金字塔。您可以傳遞 false 以強制資料複製。
返回
  • 輸出金字塔。
  • 構建金字塔中的層數。可以小於 maxLevel。

◆ calcOpticalFlowPyrLK() [1/2]

std::tuple< GArray< Point2f >, GArray< uchar >, GArray< float > > cv::gapi::calcOpticalFlowPyrLK ( const GArray< GMat > & prevPyr,
const GArray< GMat > & nextPyr,
const GArray< Point2f > & prevPts,
const GArray< Point2f > & predPts,
const Size & winSize = Size(21, 21),
const GScalar & maxLevel = 3,
const TermCriteria & criteria = TermCriteria(TermCriteria::COUNT|TermCriteria::EPS, 30, 0.01),
int flags = 0,
double minEigThresh = 1e-4 )

#include <opencv2/gapi/video.hpp>

這是一個過載的成員函式,為方便起見而提供。它與上述函式的區別僅在於它接受的引數。

注意
功能文字ID為 "org.opencv.video.calcOpticalFlowPyrLKForPyr"

◆ calcOpticalFlowPyrLK() [2/2]

std::tuple< GArray< Point2f >, GArray< uchar >, GArray< float > > cv::gapi::calcOpticalFlowPyrLK ( const GMat & prevImg,
const GMat & nextImg,
const GArray< Point2f > & prevPts,
const GArray< Point2f > & predPts,
const Size & winSize = Size(21, 21),
const GScalar & maxLevel = 3,
const TermCriteria & criteria = TermCriteria(TermCriteria::COUNT|TermCriteria::EPS, 30, 0.01),
int flags = 0,
double minEigThresh = 1e-4 )

#include <opencv2/gapi/video.hpp>

使用金字塔的迭代 Lucas-Kanade 方法計算稀疏特徵集的光流。

參見 [37]

注意
功能文字ID為 "org.opencv.video.calcOpticalFlowPyrLK"
引數
prevImg第一個 8 位輸入影像 (GMat) 或由 buildOpticalFlowPyramid 構建的金字塔 (GArray<GMat>)。
nextImg第二個輸入影像 (GMat) 或金字塔 (GArray<GMat>),與 prevImg 具有相同的大小和型別。
prevPtsGArray,包含需要查詢光流的 2D 點;點座標必須是單精度浮點數。
predPtsGArray,包含用於流搜尋的初始 2D 點;僅當傳遞 OPTFLOW_USE_INITIAL_FLOW 標誌時才有意義;在這種情況下,向量的大小必須與輸入相同。
winSize每個金字塔級別的搜尋視窗大小。
maxLevel基於 0 的最大金字塔層數;如果設定為 0,則不使用金字塔(單層),如果設定為 1,則使用兩層,依此類推;如果金字塔作為輸入傳遞,則演算法將使用金字塔所擁有的層數,但不超過 maxLevel。
criteria引數,指定迭代搜尋演算法的終止準則(在指定的迭代最大次數 criteria.maxCount 之後或當搜尋視窗移動小於 criteria.epsilon 時)。
flags操作標誌
  • OPTFLOW_USE_INITIAL_FLOW 使用儲存在 nextPts 中的初始估計;如果未設定此標誌,則 prevPts 會複製到 nextPts 並被視為初始估計。
  • OPTFLOW_LK_GET_MIN_EIGENVALS 使用最小特徵值作為誤差度量(參見 minEigThreshold 描述);如果未設定此標誌,則使用原始點和移動點周圍的塊之間的 L1 距離,除以視窗中的畫素數,作為誤差度量。
minEigThresh演算法計算光流方程的 2x2 正規矩陣(此矩陣在 [37] 中被稱為空間梯度矩陣)的最小特徵值,並將其除以視窗中的畫素數;如果此值小於 minEigThreshold,則相應的特徵將被過濾掉,其光流將不被處理,因此這允許去除不良點並獲得性能提升。
返回
  • GArray,包含第二張影像中輸入特徵的計算新位置的 2D 點(具有單精度浮點座標)。
  • status GArray(無符號字元型別);如果已找到相應特徵的流,則向量的每個元素設定為 1,否則設定為 0。
  • GArray,包含誤差(雙精度浮點數);向量的每個元素都設定為相應特徵的誤差,誤差度量型別可在 flags 引數中設定;如果未找到流,則誤差未定義(使用 status 引數查詢此類情況)。

◆ KalmanFilter() [1/2]

GMat cv::gapi::KalmanFilter ( const GMat & measurement,
const GOpaque< bool > & haveMeasurement,
const cv::gapi::KalmanParams & kfParams )

#include <opencv2/gapi/video.hpp>

這是一個過載的成員函式,為方便起見而提供。它與上述函式的區別僅在於它接受的引數。這是動態系統中沒有控制的標準卡爾曼濾波演算法的情況。在這種情況下,controlMatrix 為空且控制向量不存在。

注意
功能文字ID為 "org.opencv.video.KalmanFilterNoControl"
引數
measurement輸入矩陣:包含測量值的 32 位或 64 位浮點單通道矩陣。
haveMeasurement動態輸入標誌,指示我們是否在特定迭代中獲得測量值。
kfParams卡爾曼濾波核心的初始化引數集。
返回
輸出矩陣是預測狀態或校正狀態。它們可以是 32 位或 64 位浮點單通道矩陣 CV_32FC1CV_64FC1
另請參見
cv::KalmanFilter

◆ KalmanFilter() [2/2]

GMat cv::gapi::KalmanFilter ( const GMat & measurement,
const GOpaque< bool > & haveMeasurement,
const GMat & control,
const cv::gapi::KalmanParams & kfParams )

#include <opencv2/gapi/video.hpp>

標準卡爾曼濾波演算法 http://en.wikipedia.org/wiki/Kalman_filter

注意
功能文字ID為 "org.opencv.video.KalmanFilter"
引數
measurement輸入矩陣:包含測量值的 32 位或 64 位浮點單通道矩陣。
haveMeasurement動態輸入標誌,指示我們是否在特定迭代中獲得測量值。
control輸入矩陣:包含用於改變動態系統的控制資料的 32 位或 64 位浮點單通道矩陣。
kfParams卡爾曼濾波核心的初始化引數集。
返回
輸出矩陣是預測狀態或校正狀態。它們可以是 32 位或 64 位浮點單通道矩陣 CV_32FC1CV_64FC1

如果給定測量矩陣(haveMeasurements == true),將返回校正後的狀態,這對應於流水線 cv::KalmanFilter::predict(control) -> cv::KalmanFilter::correct(measurement)。否則,將返回預測狀態,這對應於對 cv::KalmanFilter::predict(control) 的呼叫。

另請參見
cv::KalmanFilter