类 Video


  • public class Video
    extends java.lang.Object
    • 字段详情

      • OPTFLOW_USE_INITIAL_FLOW

        public static final int OPTFLOW_USE_INITIAL_FLOW
        另请参见
        常量字段值
      • OPTFLOW_LK_GET_MIN_EIGENVALS

        public static final int OPTFLOW_LK_GET_MIN_EIGENVALS
        另请参见
        常量字段值
      • OPTFLOW_FARNEBACK_GAUSSIAN

        public static final int OPTFLOW_FARNEBACK_GAUSSIAN
        另请参见
        常量字段值
      • MOTION_TRANSLATION

        public static final int MOTION_TRANSLATION
        另请参见
        常量字段值
      • MOTION_EUCLIDEAN

        public static final int MOTION_EUCLIDEAN
        另请参见
        常量字段值
      • MOTION_AFFINE

        public static final int MOTION_AFFINE
        另请参见
        常量字段值
      • MOTION_HOMOGRAPHY

        public static final int MOTION_HOMOGRAPHY
        另请参见
        常量字段值
      • TrackerSamplerCSC_MODE_INIT_POS

        public static final int TrackerSamplerCSC_MODE_INIT_POS
        另请参见
        常量字段值
      • TrackerSamplerCSC_MODE_INIT_NEG

        public static final int TrackerSamplerCSC_MODE_INIT_NEG
        另请参见
        常量字段值
      • TrackerSamplerCSC_MODE_TRACK_POS

        public static final int TrackerSamplerCSC_MODE_TRACK_POS
        另请参见
        常量字段值
      • TrackerSamplerCSC_MODE_TRACK_NEG

        public static final int TrackerSamplerCSC_MODE_TRACK_NEG
        另请参见
        常量字段值
      • TrackerSamplerCSC_MODE_DETECT

        public static final int TrackerSamplerCSC_MODE_DETECT
        另请参见
        常量字段值
    • 构造函数详情

      • Video

        public Video()
    • 方法详情

      • CamShift

        public static RotatedRect CamShift​(Mat probImage,
                                           Rect window,
                                           TermCriteria criteria)
        查找目标中心、大小和方向。
        参数
        probImage - 目标直方图的反向投影。参见 calcBackProject。
        window - 初始搜索窗口。
        criteria - 底层 meanShift 的停止条件。返回(在旧接口中)CAMSHIFT 收敛所需的迭代次数。该函数实现了 CAMSHIFT 对象跟踪算法,参考文献:Bradski98。首先,它使用 meanShift 查找目标中心,然后调整窗口大小并找到最佳旋转。该函数返回一个旋转矩形结构,其中包含目标的位置、大小和方向。搜索窗口的下一个位置可以使用 RotatedRect::boundingRect() 获取。参见 OpenCV 示例 camshiftdemo.c,它跟踪彩色对象。**注意:**
        • (Python)可在 opencv_source_code/samples/python/camshift.py 中找到一个解释 camshift 跟踪算法的示例。
        返回值
        自动生成
      • meanShift

        public static int meanShift​(Mat probImage,
                                    Rect window,
                                    TermCriteria criteria)
        在反向投影图像上查找目标。
        参数
        probImage - 目标直方图的反向投影。详情请参见 calcBackProject。
        window - 初始搜索窗口。
        criteria - 迭代搜索算法的停止条件。返回:CAMSHIFT 收敛所需的迭代次数。该函数实现了迭代对象搜索算法。它接收目标的反向投影和初始位置作为输入。计算反向投影图像窗口中的质心,并将搜索窗口中心移到质心。重复此过程,直到完成指定的迭代次数 criteria.maxCount 或窗口中心移动小于 criteria.epsilon。该算法用于 CamShift 内部,并且与 CamShift 不同,搜索窗口的大小或方向在搜索过程中不会改变。您可以简单地将 calcBackProject 的输出传递给此函数。但是,如果预先滤除反向投影并去除噪声,可以获得更好的结果。例如,您可以通过使用 findContours 获取连通分量,丢弃面积较小的轮廓 (contourArea),并使用 drawContours 绘制其余轮廓来实现这一点。
        返回值
        自动生成
      • buildOpticalFlowPyramid

        public static int buildOpticalFlowPyramid​(Mat img,
                                                  java.util.List<Mat> pyramid,
                                                  Size winSize,
                                                  int maxLevel,
                                                  boolean withDerivatives,
                                                  int pyrBorder,
                                                  int derivBorder,
                                                  boolean tryReuseInputImage)
        构造图像金字塔,可以将其传递给 calcOpticalFlowPyrLK。
        参数
        img - 8 位输入图像。
        pyramid - 输出金字塔。
        winSize - 光流算法的窗口大小。必须不小于 calcOpticalFlowPyrLK 的 winSize 参数。它需要计算金字塔级别所需的填充。
        maxLevel - 基于0的最大金字塔层级编号。
        withDerivatives - 设置为预计算每一金字塔层的梯度。如果金字塔是在没有梯度的情况下构建的,则`calcOpticalFlowPyrLK`将在内部计算它们。
        pyrBorder - 金字塔层的边界模式。
        derivBorder - 梯度的边界模式。
        tryReuseInputImage - 如果可能,将输入图像的ROI放入金字塔中。您可以传入false强制复制数据。
        返回值
        构建的金字塔中的层级数。可能小于`maxLevel`。
      • buildOpticalFlowPyramid

        public static int buildOpticalFlowPyramid​(Mat img,
                                                  java.util.List<Mat> pyramid,
                                                  Size winSize,
                                                  int maxLevel,
                                                  boolean withDerivatives,
                                                  int pyrBorder,
                                                  int derivBorder)
        构造图像金字塔,可以将其传递给 calcOpticalFlowPyrLK。
        参数
        img - 8 位输入图像。
        pyramid - 输出金字塔。
        winSize - 光流算法的窗口大小。必须不小于 calcOpticalFlowPyrLK 的 winSize 参数。它需要计算金字塔级别所需的填充。
        maxLevel - 基于0的最大金字塔层级编号。
        withDerivatives - 设置为预计算每一金字塔层的梯度。如果金字塔是在没有梯度的情况下构建的,则`calcOpticalFlowPyrLK`将在内部计算它们。
        pyrBorder - 金字塔层的边界模式。
        derivBorder - 梯度的边界模式。强制复制数据。
        返回值
        构建的金字塔中的层级数。可能小于`maxLevel`。
      • buildOpticalFlowPyramid

        public static int buildOpticalFlowPyramid​(Mat img,
                                                  java.util.List<Mat> pyramid,
                                                  Size winSize,
                                                  int maxLevel,
                                                  boolean withDerivatives,
                                                  int pyrBorder)
        构造图像金字塔,可以将其传递给 calcOpticalFlowPyrLK。
        参数
        img - 8 位输入图像。
        pyramid - 输出金字塔。
        winSize - 光流算法的窗口大小。必须不小于 calcOpticalFlowPyrLK 的 winSize 参数。它需要计算金字塔级别所需的填充。
        maxLevel - 基于0的最大金字塔层级编号。
        withDerivatives - 设置为预计算每一金字塔层的梯度。如果金字塔是在没有梯度的情况下构建的,则`calcOpticalFlowPyrLK`将在内部计算它们。
        pyrBorder - 金字塔层的边界模式。强制复制数据。
        返回值
        构建的金字塔中的层级数。可能小于`maxLevel`。
      • buildOpticalFlowPyramid

        public static int buildOpticalFlowPyramid​(Mat img,
                                                  java.util.List<Mat> pyramid,
                                                  Size winSize,
                                                  int maxLevel,
                                                  boolean withDerivatives)
        构造图像金字塔,可以将其传递给 calcOpticalFlowPyrLK。
        参数
        img - 8 位输入图像。
        pyramid - 输出金字塔。
        winSize - 光流算法的窗口大小。必须不小于 calcOpticalFlowPyrLK 的 winSize 参数。它需要计算金字塔级别所需的填充。
        maxLevel - 基于0的最大金字塔层级编号。
        withDerivatives - 设置为预计算每一金字塔层的梯度。如果金字塔是在没有梯度的情况下构建的,则`calcOpticalFlowPyrLK`将在内部计算它们。强制复制数据。
        返回值
        构建的金字塔中的层级数。可能小于`maxLevel`。
      • buildOpticalFlowPyramid

        public static int buildOpticalFlowPyramid​(Mat img,
                                                  java.util.List<Mat> pyramid,
                                                  Size winSize,
                                                  int maxLevel)
        构造图像金字塔,可以将其传递给 calcOpticalFlowPyrLK。
        参数
        img - 8 位输入图像。
        pyramid - 输出金字塔。
        winSize - 光流算法的窗口大小。必须不小于 calcOpticalFlowPyrLK 的 winSize 参数。它需要计算金字塔级别所需的填充。
        maxLevel - 基于0的最大金字塔层级编号。如果金字塔是在没有梯度的情况下构建的,则`calcOpticalFlowPyrLK`将在内部计算它们。强制复制数据。
        返回值
        构建的金字塔中的层级数。可能小于`maxLevel`。
      • calcOpticalFlowPyrLK

        public static void calcOpticalFlowPyrLK​(Mat prevImg,
                                                Mat nextImg,
                                                MatOfPoint2f prevPts,
                                                MatOfPoint2f nextPts,
                                                MatOfByte status,
                                                MatOfFloat err,
                                                Size winSize,
                                                int maxLevel,
                                                TermCriteria criteria,
                                                int flags,
                                                double minEigThreshold)
        使用带有金字塔的迭代 Lucas-Kanade 方法计算稀疏特征集的光流。
        参数
        prevImg - 第一个8位输入图像或由`buildOpticalFlowPyramid`构建的金字塔。
        nextImg - 第二个输入图像或与`prevImg`大小和类型相同的金字塔。
        prevPts - 需要查找光流的二维点向量;点坐标必须是单精度浮点数。
        nextPts - 输出二维点向量(具有单精度浮点坐标),包含在第二张图像中计算出的输入特征的新位置;当传递`OPTFLOW_USE_INITIAL_FLOW`标志时,向量的大小必须与输入中的一样。
        status - 输出状态向量(无符号字符);如果找到对应特征的光流,则向量的每个元素都设置为1,否则设置为0。
        err - 输出误差向量;向量的每个元素都设置为对应特征的误差,误差度量的类型可以在`flags`参数中设置;如果找不到光流,则误差未定义(使用`status`参数查找此类情况)。
        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距离除以窗口中的像素数作为误差度量。
        minEigThreshold - 算法计算光流方程的2x2正规矩阵(在CITE: Bouguet00中称为空间梯度矩阵)的最小特征值,除以窗口中的像素数;如果此值小于`minEigThreshold`,则过滤掉相应的特征,并且不处理其光流,因此允许去除坏点并提高性能。该函数实现了金字塔中Lucas-Kanade光流的稀疏迭代版本。参见CITE: Bouguet00。该函数使用TBB库并行化。注意:一些示例
        • 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/cpp/lkdemo.cpp中找到。
        • (Python) 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/python/lk_track.py中找到。
        • (Python) 使用Lucas-Kanade跟踪器进行单应性匹配的示例可以在opencv_source_code/samples/python/lk_homography.py中找到。
      • calcOpticalFlowPyrLK

        public static void calcOpticalFlowPyrLK​(Mat prevImg,
                                                Mat nextImg,
                                                MatOfPoint2f prevPts,
                                                MatOfPoint2f nextPts,
                                                MatOfByte status,
                                                MatOfFloat err,
                                                Size winSize,
                                                int maxLevel,
                                                TermCriteria criteria,
                                                int flags)
        使用带有金字塔的迭代 Lucas-Kanade 方法计算稀疏特征集的光流。
        参数
        prevImg - 第一个8位输入图像或由`buildOpticalFlowPyramid`构建的金字塔。
        nextImg - 第二个输入图像或与`prevImg`大小和类型相同的金字塔。
        prevPts - 需要查找光流的二维点向量;点坐标必须是单精度浮点数。
        nextPts - 输出二维点向量(具有单精度浮点坐标),包含在第二张图像中计算出的输入特征的新位置;当传递`OPTFLOW_USE_INITIAL_FLOW`标志时,向量的大小必须与输入中的一样。
        status - 输出状态向量(无符号字符);如果找到对应特征的光流,则向量的每个元素都设置为1,否则设置为0。
        err - 输出误差向量;向量的每个元素都设置为对应特征的误差,误差度量的类型可以在`flags`参数中设置;如果找不到光流,则误差未定义(使用`status`参数查找此类情况)。
        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距离除以窗口中的像素数作为误差度量。
        光流方程(在CITE: Bouguet00中称为空间梯度矩阵)的2x2正规矩阵的最小特征值,除以窗口中的像素数;如果此值小于`minEigThreshold`,则过滤掉相应的特征,并且不处理其光流,因此允许去除坏点并提高性能。该函数实现了金字塔中Lucas-Kanade光流的稀疏迭代版本。参见CITE: Bouguet00。该函数使用TBB库并行化。注意:一些示例
        • 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/cpp/lkdemo.cpp中找到。
        • (Python) 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/python/lk_track.py中找到。
        • (Python) 使用Lucas-Kanade跟踪器进行单应性匹配的示例可以在opencv_source_code/samples/python/lk_homography.py中找到。
      • calcOpticalFlowPyrLK

        public static void calcOpticalFlowPyrLK​(Mat prevImg,
                                                Mat nextImg,
                                                MatOfPoint2f prevPts,
                                                MatOfPoint2f nextPts,
                                                MatOfByte status,
                                                MatOfFloat err,
                                                Size winSize,
                                                int maxLevel,
                                                TermCriteria criteria)
        使用带有金字塔的迭代 Lucas-Kanade 方法计算稀疏特征集的光流。
        参数
        prevImg - 第一个8位输入图像或由`buildOpticalFlowPyramid`构建的金字塔。
        nextImg - 第二个输入图像或与`prevImg`大小和类型相同的金字塔。
        prevPts - 需要查找光流的二维点向量;点坐标必须是单精度浮点数。
        nextPts - 输出二维点向量(具有单精度浮点坐标),包含在第二张图像中计算出的输入特征的新位置;当传递`OPTFLOW_USE_INITIAL_FLOW`标志时,向量的大小必须与输入中的一样。
        status - 输出状态向量(无符号字符);如果找到对应特征的光流,则向量的每个元素都设置为1,否则设置为0。
        err - 输出误差向量;向量的每个元素都设置为对应特征的误差,误差度量的类型可以在`flags`参数中设置;如果找不到光流,则误差未定义(使用`status`参数查找此类情况)。
        winSize - 每个金字塔层搜索窗口的大小。
        maxLevel - 基于0的最大金字塔层级编号;如果设置为0,则不使用金字塔(单层),如果设置为1,则使用两层,依此类推;如果金字塔传递给输入,则算法将使用与金字塔拥有的层数一样多的层数,但不超过`maxLevel`。
        criteria - 指定迭代搜索算法终止条件的参数(在指定的最大迭代次数`criteria.maxCount`之后或当搜索窗口移动小于`criteria.epsilon`时)。
        • OPTFLOW_USE_INITIAL_FLOW 使用存储在`nextPts`中的初始估计;如果没有设置此标志,则将`prevPts`复制到`nextPts`并将其视为初始估计。
        • OPTFLOW_LK_GET_MIN_EIGENVALS 使用最小特征值作为误差度量(参见`minEigThreshold`说明);如果没有设置此标志,则使用原始点和移动点周围块之间的L1距离除以窗口中的像素数作为误差度量。
        光流方程(在CITE: Bouguet00中称为空间梯度矩阵)的2x2正规矩阵的最小特征值,除以窗口中的像素数;如果此值小于`minEigThreshold`,则过滤掉相应的特征,并且不处理其光流,因此允许去除坏点并提高性能。该函数实现了金字塔中Lucas-Kanade光流的稀疏迭代版本。参见CITE: Bouguet00。该函数使用TBB库并行化。注意:一些示例
        • 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/cpp/lkdemo.cpp中找到。
        • (Python) 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/python/lk_track.py中找到。
        • (Python) 使用Lucas-Kanade跟踪器进行单应性匹配的示例可以在opencv_source_code/samples/python/lk_homography.py中找到。
      • calcOpticalFlowPyrLK

        public static void calcOpticalFlowPyrLK​(Mat prevImg,
                                                Mat nextImg,
                                                MatOfPoint2f prevPts,
                                                MatOfPoint2f nextPts,
                                                MatOfByte status,
                                                MatOfFloat err,
                                                Size winSize,
                                                int maxLevel)
        使用带有金字塔的迭代 Lucas-Kanade 方法计算稀疏特征集的光流。
        参数
        prevImg - 第一个8位输入图像或由`buildOpticalFlowPyramid`构建的金字塔。
        nextImg - 第二个输入图像或与`prevImg`大小和类型相同的金字塔。
        prevPts - 需要查找光流的二维点向量;点坐标必须是单精度浮点数。
        nextPts - 输出二维点向量(具有单精度浮点坐标),包含在第二张图像中计算出的输入特征的新位置;当传递`OPTFLOW_USE_INITIAL_FLOW`标志时,向量的大小必须与输入中的一样。
        status - 输出状态向量(无符号字符);如果找到对应特征的光流,则向量的每个元素都设置为1,否则设置为0。
        err - 输出误差向量;向量的每个元素都设置为对应特征的误差,误差度量的类型可以在`flags`参数中设置;如果找不到光流,则误差未定义(使用`status`参数查找此类情况)。
        winSize - 每个金字塔层搜索窗口的大小。
        maxLevel - 基于0的最大金字塔层级编号;如果设置为0,则不使用金字塔(单层),如果设置为1,则使用两层,依此类推;如果金字塔传递给输入,则算法将使用与金字塔拥有的层数一样多的层数,但不超过`maxLevel`。(在指定的最大迭代次数`criteria.maxCount`之后或当搜索窗口移动小于`criteria.epsilon`时)。
        • OPTFLOW_USE_INITIAL_FLOW 使用存储在`nextPts`中的初始估计;如果没有设置此标志,则将`prevPts`复制到`nextPts`并将其视为初始估计。
        • OPTFLOW_LK_GET_MIN_EIGENVALS 使用最小特征值作为误差度量(参见`minEigThreshold`说明);如果没有设置此标志,则使用原始点和移动点周围块之间的L1距离除以窗口中的像素数作为误差度量。
        光流方程(在CITE: Bouguet00中称为空间梯度矩阵)的2x2正规矩阵的最小特征值,除以窗口中的像素数;如果此值小于`minEigThreshold`,则过滤掉相应的特征,并且不处理其光流,因此允许去除坏点并提高性能。该函数实现了金字塔中Lucas-Kanade光流的稀疏迭代版本。参见CITE: Bouguet00。该函数使用TBB库并行化。注意:一些示例
        • 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/cpp/lkdemo.cpp中找到。
        • (Python) 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/python/lk_track.py中找到。
        • (Python) 使用Lucas-Kanade跟踪器进行单应性匹配的示例可以在opencv_source_code/samples/python/lk_homography.py中找到。
      • calcOpticalFlowPyrLK

        public static void calcOpticalFlowPyrLK​(Mat prevImg,
                                                Mat nextImg,
                                                MatOfPoint2f prevPts,
                                                MatOfPoint2f nextPts,
                                                MatOfByte status,
                                                MatOfFloat err,
                                                Size winSize)
        使用带有金字塔的迭代 Lucas-Kanade 方法计算稀疏特征集的光流。
        参数
        prevImg - 第一个8位输入图像或由`buildOpticalFlowPyramid`构建的金字塔。
        nextImg - 第二个输入图像或与`prevImg`大小和类型相同的金字塔。
        prevPts - 需要查找光流的二维点向量;点坐标必须是单精度浮点数。
        nextPts - 输出二维点向量(具有单精度浮点坐标),包含在第二张图像中计算出的输入特征的新位置;当传递`OPTFLOW_USE_INITIAL_FLOW`标志时,向量的大小必须与输入中的一样。
        status - 输出状态向量(无符号字符);如果找到对应特征的光流,则向量的每个元素都设置为1,否则设置为0。
        err - 输出误差向量;向量的每个元素都设置为对应特征的误差,误差度量的类型可以在`flags`参数中设置;如果找不到光流,则误差未定义(使用`status`参数查找此类情况)。
        winSize - 每个金字塔层搜索窗口的大小。如果设置为0,则不使用金字塔(单层),如果设置为1,则使用两层,依此类推;如果金字塔传递给输入,则算法将使用与金字塔拥有的层数一样多的层数,但不超过`maxLevel`。(在指定的最大迭代次数`criteria.maxCount`之后或当搜索窗口移动小于`criteria.epsilon`时)。
        • OPTFLOW_USE_INITIAL_FLOW 使用存储在`nextPts`中的初始估计;如果没有设置此标志,则将`prevPts`复制到`nextPts`并将其视为初始估计。
        • OPTFLOW_LK_GET_MIN_EIGENVALS 使用最小特征值作为误差度量(参见`minEigThreshold`说明);如果没有设置此标志,则使用原始点和移动点周围块之间的L1距离除以窗口中的像素数作为误差度量。
        光流方程(在CITE: Bouguet00中称为空间梯度矩阵)的2x2正规矩阵的最小特征值,除以窗口中的像素数;如果此值小于`minEigThreshold`,则过滤掉相应的特征,并且不处理其光流,因此允许去除坏点并提高性能。该函数实现了金字塔中Lucas-Kanade光流的稀疏迭代版本。参见CITE: Bouguet00。该函数使用TBB库并行化。注意:一些示例
        • 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/cpp/lkdemo.cpp中找到。
        • (Python) 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/python/lk_track.py中找到。
        • (Python) 使用Lucas-Kanade跟踪器进行单应性匹配的示例可以在opencv_source_code/samples/python/lk_homography.py中找到。
      • calcOpticalFlowPyrLK

        public static void calcOpticalFlowPyrLK​(Mat prevImg,
                                                Mat nextImg,
                                                MatOfPoint2f prevPts,
                                                MatOfPoint2f nextPts,
                                                MatOfByte status,
                                                MatOfFloat err)
        使用带有金字塔的迭代 Lucas-Kanade 方法计算稀疏特征集的光流。
        参数
        prevImg - 第一个8位输入图像或由`buildOpticalFlowPyramid`构建的金字塔。
        nextImg - 第二个输入图像或与`prevImg`大小和类型相同的金字塔。
        prevPts - 需要查找光流的二维点向量;点坐标必须是单精度浮点数。
        nextPts - 输出二维点向量(具有单精度浮点坐标),包含在第二张图像中计算出的输入特征的新位置;当传递`OPTFLOW_USE_INITIAL_FLOW`标志时,向量的大小必须与输入中的一样。
        status - 输出状态向量(无符号字符);如果找到对应特征的光流,则向量的每个元素都设置为1,否则设置为0。
        err - 输出误差向量;向量的每个元素都设置为对应特征的误差,误差度量的类型可以在`flags`参数中设置;如果找不到光流,则误差未定义(使用`status`参数查找此类情况)。如果设置为0,则不使用金字塔(单层),如果设置为1,则使用两层,依此类推;如果金字塔传递给输入,则算法将使用与金字塔拥有的层数一样多的层数,但不超过`maxLevel`。(在指定的最大迭代次数`criteria.maxCount`之后或当搜索窗口移动小于`criteria.epsilon`时)。
        • OPTFLOW_USE_INITIAL_FLOW 使用存储在`nextPts`中的初始估计;如果没有设置此标志,则将`prevPts`复制到`nextPts`并将其视为初始估计。
        • OPTFLOW_LK_GET_MIN_EIGENVALS 使用最小特征值作为误差度量(参见`minEigThreshold`说明);如果没有设置此标志,则使用原始点和移动点周围块之间的L1距离除以窗口中的像素数作为误差度量。
        光流方程(在CITE: Bouguet00中称为空间梯度矩阵)的2x2正规矩阵的最小特征值,除以窗口中的像素数;如果此值小于`minEigThreshold`,则过滤掉相应的特征,并且不处理其光流,因此允许去除坏点并提高性能。该函数实现了金字塔中Lucas-Kanade光流的稀疏迭代版本。参见CITE: Bouguet00。该函数使用TBB库并行化。注意:一些示例
        • 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/cpp/lkdemo.cpp中找到。
        • (Python) 使用Lucas-Kanade光流算法的示例可以在opencv_source_code/samples/python/lk_track.py中找到。
        • (Python) 使用Lucas-Kanade跟踪器进行单应性匹配的示例可以在opencv_source_code/samples/python/lk_homography.py中找到。
      • calcOpticalFlowFarneback

        public static void calcOpticalFlowFarneback​(Mat prev,
                                                    Mat next,
                                                    Mat flow,
                                                    double pyr_scale,
                                                    int levels,
                                                    int winsize,
                                                    int iterations,
                                                    int poly_n,
                                                    double poly_sigma,
                                                    int flags)
        使用 Gunnar Farneback 算法计算密集光流。
        参数
        prev - 第一个8位单通道输入图像。
        next - 第二个输入图像,大小和类型与`prev`相同。
        flow - 计算出的光流图像,大小与`prev`相同,类型为CV_32FC2。
        pyr_scale - 参数,指定图像比例(<1)以构建每个图像的金字塔;`pyr_scale=0.5`表示经典金字塔,其中每一层都比前一层小两倍。
        levels - 包括初始图像的金字塔层数;`levels=1`表示不创建额外的层,只使用原始图像。
        winsize - 平均窗口大小;较大的值会增加算法对图像噪声的鲁棒性,并为快速运动检测提供更多机会,但会产生更模糊的运动场。
        iterations - 算法在每个金字塔层进行的迭代次数。
        poly_n - 用于在每个像素中查找多项式展开的像素邻域大小;较大的值意味着图像将用更平滑的曲面逼近,产生更鲁棒的算法和更模糊的运动场,通常`poly_n =5`或7。
        poly_sigma - 用于平滑用作多项式展开基础的导数的高斯函数的标准差;对于`poly_n=5`,您可以设置`poly_sigma=1.1`,对于`poly_n=7`,一个好的值是`poly_sigma=1.5`。
        flags - 可以是以下组合的操作标志
        • OPTFLOW_USE_INITIAL_FLOW 使用输入流作为初始流近似值。
        • OPTFLOW_FARNEBACK_GAUSSIAN 使用高斯\(\texttt{winsize}\times\texttt{winsize}\)滤波器代替相同大小的盒式滤波器进行光流估计;通常,此选项比使用盒式滤波器提供更精确的光流,但速度较慢;通常,高斯窗口的`winsize`应设置为较大的值以达到相同的鲁棒性水平。
        该函数使用CITE: Farneback2003算法为每个`prev`像素查找光流,以便\(\texttt{prev} (y,x) \sim \texttt{next} ( y + \texttt{flow} (y,x)[1], x + \texttt{flow} (y,x)[0])\) 注意:一些示例
        • Gunnar Farneback 描述的光流算法示例可在 opencv_source_code/samples/cpp/fback.cpp 中找到。
        • (Python) Gunnar Farneback 描述的光流算法示例可在 opencv_source_code/samples/python/opt_flow.py 中找到。
      • computeECC

        public static double computeECC​(Mat templateImage,
                                        Mat inputImage,
                                        Mat inputMask)
        计算两幅图像之间的增强相关系数 (ECC) 值,参考文献:EP08。
        参数
        templateImage - 单通道模板图像;CV_8U 或 CV_32F 数组。
        inputImage - 单通道输入图像,将被扭曲以提供与 templateImage 类似的图像,与 templateImage 类型相同。
        inputMask - 一个可选掩码,用于指示 inputImage 的有效值。参见:findTransformECC
        返回值
        自动生成
      • computeECC

        public static double computeECC​(Mat templateImage,
                                        Mat inputImage)
        计算两幅图像之间的增强相关系数 (ECC) 值,参考文献:EP08。
        参数
        templateImage - 单通道模板图像;CV_8U 或 CV_32F 数组。
        inputImage - 单通道输入图像,将被扭曲以提供与 templateImage 类似的图像,与 templateImage 类型相同。参见:findTransformECC
        返回值
        自动生成
      • findTransformECC

        public static double findTransformECC​(Mat templateImage,
                                              Mat inputImage,
                                              Mat warpMatrix,
                                              int motionType,
                                              TermCriteria criteria,
                                              Mat inputMask,
                                              int gaussFiltSize)
        根据 ECC 准则查找两幅图像之间的几何变换(扭曲),参考文献:EP08。
        参数
        templateImage - 单通道模板图像;CV_8U 或 CV_32F 数组。
        inputImage - 单通道输入图像,应该使用最终的 warpMatrix 进行扭曲,以提供与 templateImage 类似的图像,与 templateImage 类型相同。
        warpMatrix - 浮点型 \(2\times 3\) 或 \(3\times 3\) 映射矩阵(变换矩阵)。
        motionType - 参数,指定运动类型。
        • MOTION_TRANSLATION 设置平移运动模型;warpMatrix 为 \(2\times 3\) 矩阵,前 \(2\times 2\) 部分为单位矩阵,其余两个参数将被估计。
        • MOTION_EUCLIDEAN 设置欧几里得(刚性)变换作为运动模型;估计三个参数;warpMatrix 为 \(2\times 3\) 矩阵。
        • MOTION_AFFINE 设置仿射运动模型(默认);估计六个参数;warpMatrix 为 \(2\times 3\) 矩阵。
        • MOTION_HOMOGRAPHY 设置单应性作为运动模型;估计八个参数;warpMatrix 为 \(3\times 3\) 矩阵。
        criteria - 参数,指定 ECC 算法的终止准则;criteria.epsilon 定义两次迭代之间相关系数增量的阈值(负的 criteria.epsilon 使 criteria.maxcount 成为唯一的终止准则)。默认值如上所述。
        inputMask - 一个可选掩码,用于指示 inputImage 的有效值。
        gaussFiltSize - 一个可选值,指示高斯模糊滤波器的尺寸;(默认值:5)该函数根据 ECC 准则(引用:EP08)估计最佳变换 (warpMatrix),即 \(\texttt{warpMatrix} = \arg\max_{W} \texttt{ECC}(\texttt{templateImage}(x,y),\texttt{inputImage}(x',y'))\) ,其中 \(\begin{bmatrix} x' \\ y' \end{bmatrix} = W \cdot \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}\)(对于单应性,该等式使用齐次坐标)。它返回最终增强的相关系数,即模板图像和最终扭曲的输入图像之间的相关系数。当使用 \(3\times 3\) 矩阵且 motionType = 0、1 或 2 时,第三行将被忽略。与 findHomographyestimateRigidTransform 不同,findTransformECC 函数实现基于区域的对齐,其基于强度相似性。本质上,该函数更新粗略对齐图像的初始变换。如果此信息缺失,则使用恒等变换(单位矩阵)作为初始化。请注意,如果图像发生强位移/旋转,则需要一个粗略对齐图像的初始变换(例如,一个简单的欧几里得/相似变换,允许图像显示大致相同的图像内容)。使用反向扭曲在第二张图像中获取接近第一张图像的图像,即使用标志 WARP_INVERSE_MAPwarpAffinewarpPerspective 一起使用。另请参见 OpenCV 示例 image_alignment.cpp,该示例演示了该函数的用法。请注意,如果算法不收敛,则该函数将抛出异常。参见:computeECC、estimateAffine2D、estimateAffinePartial2D、findHomography
        返回值
        自动生成
      • findTransformECC

        public static double findTransformECC​(Mat templateImage,
                                              Mat inputImage,
                                              Mat warpMatrix,
                                              int motionType,
                                              TermCriteria criteria,
                                              Mat inputMask)
      • findTransformECC

        public static double findTransformECC​(Mat templateImage,
                                              Mat inputImage,
                                              Mat warpMatrix,
                                              int motionType,
                                              TermCriteria criteria)
      • findTransformECC

        public static double findTransformECC​(Mat templateImage,
                                              Mat inputImage,
                                              Mat warpMatrix,
                                              int motionType)
      • findTransformECC

        public static double findTransformECC​(Mat templateImage,
                                              Mat inputImage,
                                              Mat warpMatrix)
      • readOpticalFlow

        public static Mat readOpticalFlow​(java.lang.String path)
        读取 .flo 文件
        参数
        path - 要加载的文件路径。readOpticalFlow 函数从文件加载流场并将其作为单个矩阵返回。生成的 Mat 类型为 CV_32FC2 - 浮点型,2 通道。第一通道对应于水平方向上的流 (u),第二通道对应于垂直方向上的流 (v)。
        返回值
        自动生成
      • writeOpticalFlow

        public static boolean writeOpticalFlow​(java.lang.String path,
                                               Mat flow)
        将 .flo 文件写入磁盘
        参数
        path - 要写入的文件路径。
        flow - 要存储的流场。该函数将流场存储在文件中,成功返回 true,否则返回 false。流场必须是 2 通道浮点型矩阵 (CV_32FC2)。第一通道对应于水平方向上的流 (u),第二通道对应于垂直方向上的流 (v)。
        返回值
        自动生成
      • createBackgroundSubtractorMOG2

        public static BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2​(int history,
                                                                              double varThreshold,
                                                                              boolean detectShadows)
        创建 MOG2 背景减除器
        参数
        history - 历史长度。
        varThreshold - 像素与模型之间的马氏距离平方阈值,用于判断像素是否被背景模型很好地描述。此参数不影响背景更新。
        detectShadows - 如果为真,算法将检测阴影并标记它们。它会稍微降低速度,因此如果您不需要此功能,请将参数设置为 false。
        返回值
        自动生成
      • createBackgroundSubtractorMOG2

        public static BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2​(int history,
                                                                              double varThreshold)
        创建 MOG2 背景减除器
        参数
        history - 历史长度。
        varThreshold - 像素与模型之间的马氏距离平方阈值,用于判断像素是否被背景模型很好地描述。此参数不影响背景更新。速度,因此如果您不需要此功能,请将参数设置为 false。
        返回值
        自动生成
      • createBackgroundSubtractorMOG2

        public static BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2​(int history)
        创建 MOG2 背景减除器
        参数
        history - 历史长度。用于判断像素是否被背景模型很好地描述。此参数不影响背景更新。速度,因此如果您不需要此功能,请将参数设置为 false。
        返回值
        自动生成
      • createBackgroundSubtractorMOG2

        public static BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2()
        创建 MOG2 背景减法器 用于判断像素是否被背景模型很好地描述。此参数不影响背景更新。速度,因此如果您不需要此功能,请将参数设置为 false。
        返回值
        自动生成
      • createBackgroundSubtractorKNN

        public static BackgroundSubtractorKNN createBackgroundSubtractorKNN​(int history,
                                                                            double dist2Threshold,
                                                                            boolean detectShadows)
        创建 KNN 背景减除器
        参数
        history - 历史长度。
        dist2Threshold - 像素与样本之间距离平方的阈值,用于判断像素是否接近该样本。此参数不影响背景更新。
        detectShadows - 如果为真,算法将检测阴影并标记它们。它会稍微降低速度,因此如果您不需要此功能,请将参数设置为 false。
        返回值
        自动生成
      • createBackgroundSubtractorKNN

        public static BackgroundSubtractorKNN createBackgroundSubtractorKNN​(int history,
                                                                            double dist2Threshold)
        创建 KNN 背景减除器
        参数
        history - 历史长度。
        dist2Threshold - 像素与样本之间距离平方的阈值,用于判断像素是否接近该样本。此参数不影响背景更新。速度,因此如果您不需要此功能,请将参数设置为 false。
        返回值
        自动生成
      • createBackgroundSubtractorKNN

        public static BackgroundSubtractorKNN createBackgroundSubtractorKNN​(int history)
        创建 KNN 背景减除器
        参数
        history - 历史长度。是否接近该样本。此参数不影响背景更新。速度,因此如果您不需要此功能,请将参数设置为 false。
        返回值
        自动生成
      • createBackgroundSubtractorKNN

        public static BackgroundSubtractorKNN createBackgroundSubtractorKNN()
        创建 KNN 背景减法器 是否接近该样本。此参数不影响背景更新。速度,因此如果您不需要此功能,请将参数设置为 false。
        返回值
        自动生成