OpenCV 4.11.0
开源计算机视觉库
|
函数 | |
GMat | cv::gapi::BackgroundSubtractor (const GMat &src, const cv::gapi::video::BackgroundSubtractorParams &bsParams) |
基于高斯混合模型或 K 近邻的背景/前景分割算法。该操作生成前景掩码。 | |
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) |
构建图像金字塔,可传递给 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。 | |
GMat cv::gapi::BackgroundSubtractor | ( | const GMat & | src, |
const cv::gapi::video::BackgroundSubtractorParams & | bsParams ) |
#include <opencv2/gapi/video.hpp>
基于高斯混合模型或 K 近邻的背景/前景分割算法。该操作生成前景掩码。
src | 输入图像:使用浮点型帧,无需缩放,应在 [0,255] 范围内。 |
bsParams | 背景减除内核的一组初始化参数。 |
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。
img | 8 位输入图像。 |
winSize | 光流算法的窗口大小。必须不小于 calcOpticalFlowPyrLK 的 winSize 参数。它需要计算金字塔级别所需的填充。 |
maxLevel | 基于 0 的最大金字塔级别编号。 |
withDerivatives | 设置为预计算每个金字塔级别的梯度。如果金字塔是在没有梯度的情况下构建的,则 calcOpticalFlowPyrLK 将在内部计算它们。 |
pyrBorder | 金字塔层的边界模式。 |
derivBorder | 梯度的边界模式。 |
tryReuseInputImage | 如果可能,将输入图像的 ROI 放入金字塔中。您可以传递 false 以强制数据复制。 |
cv::gapi::calcOpticalFlowPyrLK 返回一个元组 std::tuple< GArray< Point2f >, GArray< uchar >, GArray< float > > | ( | 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>
这是一个重载的成员函数,为了方便使用。它与上面的函数的区别仅在于它接受的参数。
cv::gapi::calcOpticalFlowPyrLK 返回一个元组 std::tuple< GArray< Point2f >, GArray< uchar >, GArray< float > > | ( | 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 方法计算稀疏特征集的光流。
参见 [36]。
前一帧图像 prevImg | 第一个 8 位输入图像 (GMat) 或由 buildOpticalFlowPyramid 函数构建的金字塔 (GArray<GMat>)。 |
后一帧图像 nextImg | 第二个输入图像 (GMat) 或与 prevImg 大小和类型相同的金字塔 (GArray<GMat>)。 |
前一帧特征点 prevPts | 需要查找光流的二维点 GArray;点坐标必须是单精度浮点数。 |
预测的特征点位置 predPts | 光流搜索的二维点初始值 GArray;只有在传递 OPTFLOW_USE_INITIAL_FLOW 标志时才有意义;在这种情况下,向量的尺寸必须与输入相同。 |
winSize | 每个金字塔层搜索窗口的大小。 |
maxLevel | 基于 0 的最大金字塔层数;如果设置为 0,则不使用金字塔(单层);如果设置为 1,则使用两层,依此类推;如果将金字塔传递给输入,则算法将使用与金字塔层数一样多的层数,但不超过 maxLevel。 |
迭代终止条件 criteria | 指定迭代搜索算法终止条件的参数(在指定的最大迭代次数 criteria.maxCount 后或当搜索窗口移动小于 criteria.epsilon 时)。 |
操作标志 flags | 操作标志
|
最小特征值阈值 minEigThresh | 算法计算光流方程 2x2 正规矩阵的最小特征值(此矩阵在 [36] 中称为空间梯度矩阵),除以窗口中的像素数量;如果此值小于 minEigThreshold,则会过滤掉相应的特征,并且不会处理其光流,因此它允许去除不良点并提高性能。 |
cv::gapi::KalmanFilter 返回一个 GMat | ( | const GMat & | 测量值 measurement, |
const GOpaque< bool > & | 是否具有测量值 haveMeasurement, | ||
const cv::gapi::KalmanParams & | kfParams 卡尔曼滤波器参数 |
#include <opencv2/gapi/video.hpp>
这是一个重载的成员函数,为了方便使用。它与上面的函数的区别仅在于它接受的参数。这是标准卡尔曼滤波算法在动态系统中没有控制的情况下的情况。在这种情况下,控制矩阵为空,并且没有控制向量。
测量值 measurement | 输入矩阵:包含测量的 32 位或 64 位浮点型单通道矩阵。 |
是否具有测量值 haveMeasurement | 动态输入标志,指示在特定迭代中是否获得测量值。 |
kfParams 卡尔曼滤波器参数 | 卡尔曼滤波器内核的一组初始化参数。 |
cv::gapi::KalmanFilter 返回一个 GMat | ( | 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。
测量值 measurement | 输入矩阵:包含测量的 32 位或 64 位浮点型单通道矩阵。 |
是否具有测量值 haveMeasurement | 动态输入标志,指示在特定迭代中是否获得测量值。 |
控制量 control | 输入矩阵:包含用于更改动态系统的控制数据的 32 位或 64 位浮点型单通道矩阵。 |
kfParams 卡尔曼滤波器参数 | 卡尔曼滤波器内核的一组初始化参数。 |
如果给出测量矩阵 (haveMeasurements == true),则将返回校正后的状态,这对应于管道 cv::KalmanFilter::predict(control) -> cv::KalmanFilter::correct(measurement)。否则,将返回预测状态,这对应于 cv::KalmanFilter::predict(control) 的调用。