软件包 org.opencv.video

类 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()
    • 方法详情

      • createBackgroundSubtractorMOG2

        public static BackgroundSubtractorMOG2 createBackgroundSubtractorMOG2​(int history,
                                                                              double varThreshold,
                                                                              boolean detectShadows)
        创建 MOG2 背景扣除器
        参数
        history - 历史长度。
        varThreshold - 像素与模型之间马氏距离平方的阈值,用于决定像素是否被背景模型良好描述。此参数不影响背景更新。
        detectShadows - 如果为 true,算法将检测并标记阴影。这会稍微降低速度,因此如果不需要此功能,请将参数设置为 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 - 如果为 true,算法将检测并标记阴影。这会稍微降低速度,因此如果不需要此功能,请将参数设置为 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。
        返回
        自动生成
      • 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 - 需要寻找光流的 2D 点向量;点坐标必须是单精度浮点数。
        nextPts - 输出的 2D 点向量(具有单精度浮点坐标),包含计算出的输入特征在第二幅图像中的新位置;当传递了 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 正规矩阵(在参考:Bouguet00 中称为空间梯度矩阵)的最小特征值,除以窗口中的像素数;如果该值小于 minEigThreshold,则剔除相应的特征,不处理其光流,这样可以去除坏点并提高性能。该函数实现了金字塔中 Lucas-Kanade 光流的稀疏迭代版本。参见参考:Bouguet00。该函数已使用 TBB 库实现并行化。注意: 一些示例
        • 可以在 opencv_source_code/samples/cpp/lkdemo.cpp 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_track.py 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_homography.py 中找到使用 Lucas-Kanade 追踪器进行单应性匹配的示例
      • 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 - 需要寻找光流的 2D 点向量;点坐标必须是单精度浮点数。
        nextPts - 输出的 2D 点向量(具有单精度浮点坐标),包含计算出的输入特征在第二幅图像中的新位置;当传递了 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 距离除以窗口中的像素数作为误差度量。
        光流方程(此矩阵在参考:Bouguet00 中称为空间梯度矩阵),除以窗口中的像素数;如果该值小于 minEigThreshold,则剔除相应的特征,不处理其光流,从而去除坏点并提高性能。该函数实现了金字塔中 Lucas-Kanade 光流的稀疏迭代版本。参见参考:Bouguet00。该函数已使用 TBB 库实现并行化。注意: 一些示例
        • 可以在 opencv_source_code/samples/cpp/lkdemo.cpp 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_track.py 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_homography.py 中找到使用 Lucas-Kanade 追踪器进行单应性匹配的示例
      • 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 - 需要寻找光流的 2D 点向量;点坐标必须是单精度浮点数。
        nextPts - 输出的 2D 点向量(具有单精度浮点坐标),包含计算出的输入特征在第二幅图像中的新位置;当传递了 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 距离除以窗口中的像素数作为误差度量。
        光流方程(此矩阵在参考:Bouguet00 中称为空间梯度矩阵),除以窗口中的像素数;如果该值小于 minEigThreshold,则剔除相应的特征,不处理其光流,从而去除坏点并提高性能。该函数实现了金字塔中 Lucas-Kanade 光流的稀疏迭代版本。参见参考:Bouguet00。该函数已使用 TBB 库实现并行化。注意: 一些示例
        • 可以在 opencv_source_code/samples/cpp/lkdemo.cpp 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_track.py 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_homography.py 中找到使用 Lucas-Kanade 追踪器进行单应性匹配的示例
      • 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 - 需要寻找光流的 2D 点向量;点坐标必须是单精度浮点数。
        nextPts - 输出的 2D 点向量(具有单精度浮点坐标),包含计算出的输入特征在第二幅图像中的新位置;当传递了 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 距离除以窗口中的像素数作为误差度量。
        光流方程(此矩阵在参考:Bouguet00 中称为空间梯度矩阵),除以窗口中的像素数;如果该值小于 minEigThreshold,则剔除相应的特征,不处理其光流,从而去除坏点并提高性能。该函数实现了金字塔中 Lucas-Kanade 光流的稀疏迭代版本。参见参考:Bouguet00。该函数已使用 TBB 库实现并行化。注意: 一些示例
        • 可以在 opencv_source_code/samples/cpp/lkdemo.cpp 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_track.py 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_homography.py 中找到使用 Lucas-Kanade 追踪器进行单应性匹配的示例
      • 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 - 需要寻找光流的 2D 点向量;点坐标必须是单精度浮点数。
        nextPts - 输出的 2D 点向量(具有单精度浮点坐标),包含计算出的输入特征在第二幅图像中的新位置;当传递了 OPTFLOW_USE_INITIAL_FLOW 标志时,向量的大小必须与输入时相同。
        status - 输出状态向量(无符号字符型);如果找到了对应特征的光流,向量的每个元素被设置为 1,否则设置为 0。
        err - 输出误差向量;向量的每个元素被设置为对应特征的误差,误差度量类型可以在 flags 参数中设置;如果未找到光流,则误差未定义(使用 status 参数来发现此类情况)。
        winSize - 每个金字塔层级的搜索窗口大小。层),如果设置为 1,则使用两层,依此类推;如果将金字塔传递给输入,算法将使用与金字塔层数相同的层数,但不超过 maxLevel。(在指定的最高迭代次数 criteria.maxCount 之后,或当搜索窗口移动小于 criteria.epsilon 时)。
        • OPTFLOW_USE_INITIAL_FLOW 使用存储在 nextPts 中的初始估计值;如果未设置该标志,则将 prevPts 复制到 nextPts 并将其视为初始估计。
        • OPTFLOW_LK_GET_MIN_EIGENVALS 使用最小特征值作为误差度量(见 minEigThreshold 描述);如果未设置该标志,则使用原始点和移动点周围补丁之间的 L1 距离除以窗口中的像素数作为误差度量。
        光流方程(此矩阵在参考:Bouguet00 中称为空间梯度矩阵),除以窗口中的像素数;如果该值小于 minEigThreshold,则剔除相应的特征,不处理其光流,从而去除坏点并提高性能。该函数实现了金字塔中 Lucas-Kanade 光流的稀疏迭代版本。参见参考:Bouguet00。该函数已使用 TBB 库实现并行化。注意: 一些示例
        • 可以在 opencv_source_code/samples/cpp/lkdemo.cpp 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_track.py 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_homography.py 中找到使用 Lucas-Kanade 追踪器进行单应性匹配的示例
      • 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 - 需要寻找光流的 2D 点向量;点坐标必须是单精度浮点数。
        nextPts - 输出的 2D 点向量(具有单精度浮点坐标),包含计算出的输入特征在第二幅图像中的新位置;当传递了 OPTFLOW_USE_INITIAL_FLOW 标志时,向量的大小必须与输入时相同。
        status - 输出状态向量(无符号字符型);如果找到了对应特征的光流,向量的每个元素被设置为 1,否则设置为 0。
        err - 输出误差向量;向量的每个元素被设置为对应特征的误差,误差度量类型可以在 flags 参数中设置;如果未找到光流,则误差未定义(使用 status 参数来发现此类情况)。层),如果设置为 1,则使用两层,依此类推;如果将金字塔传递给输入,算法将使用与金字塔层数相同的层数,但不超过 maxLevel。(在指定的最高迭代次数 criteria.maxCount 之后,或当搜索窗口移动小于 criteria.epsilon 时)。
        • OPTFLOW_USE_INITIAL_FLOW 使用存储在 nextPts 中的初始估计值;如果未设置该标志,则将 prevPts 复制到 nextPts 并将其视为初始估计。
        • OPTFLOW_LK_GET_MIN_EIGENVALS 使用最小特征值作为误差度量(见 minEigThreshold 描述);如果未设置该标志,则使用原始点和移动点周围补丁之间的 L1 距离除以窗口中的像素数作为误差度量。
        光流方程(此矩阵在参考:Bouguet00 中称为空间梯度矩阵),除以窗口中的像素数;如果该值小于 minEigThreshold,则剔除相应的特征,不处理其光流,从而去除坏点并提高性能。该函数实现了金字塔中 Lucas-Kanade 光流的稀疏迭代版本。参见参考:Bouguet00。该函数已使用 TBB 库实现并行化。注意: 一些示例
        • 可以在 opencv_source_code/samples/cpp/lkdemo.cpp 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_track.py 中找到使用 Lucas-Kanade 光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/lk_homography.py 中找到使用 Lucas-Kanade 追踪器进行单应性匹配的示例
      • 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 应设置为较大的值,以实现相同的鲁棒性水平。
        该函数使用参考:Farneback2003 算法寻找每个 prev 像素的光流,使得 \(\texttt{prev} (y,x) \sim \texttt{next} ( y + \texttt{flow} (y,x)[1], x + \texttt{flow} (y,x)[0])\) 注意: 一些示例
        • 可以在 opencv_source_code/samples/cpp/fback.cpp 中找到使用 Gunnar Farneback 描述的光流算法的示例
        • (Python) 可以在 opencv_source_code/samples/python/opt_flow.py 中找到使用 Gunnar Farneback 描述的光流算法的示例
      • computeECC

        public static double computeECC​(Mat templateImage,
                                        Mat inputImage,
                                        Mat inputMask)
        计算两幅图像之间的增强相关系数 (ECC) 值。增强相关系数 (ECC) 是两幅图像之间相似性的归一化度量,参考:EP08。结果在 [-1, 1] 范围内,其中 1 表示完美相似(模仿射平移和缩放),0 表示无相关性,-1 表示完美负相关。对于单通道图像,ECC 定义为:\( \mathrm{ECC}(I, T) = \frac{\sum_{x} (I(x) - \mu_I)(T(x) - \mu_T)} {\sqrt{\sum_{x} (I(x) - \mu_I)^2} \cdot \sqrt{\sum_{x} (T(x) - \mu_T)^2}} \) 对于多通道图像(例如 3 通道 RGB),公式泛化为:\( \mathrm{ECC}(I, T) = \frac{\sum_{x} \sum_{c=1}^{C} (I_c(x) - \mu_{I_c})(T_c(x) - \mu_{T_c})} {\sqrt{\sum_{x} \sum_{c=1}^{C} (I_c(x) - \mu_{I_c})^2} \cdot \sqrt{\sum_{x} \sum_{c=1}^{C} (T_c(x) - \mu_{T_c})^2}} \) 其中
        • \(I_c(x), T_c(x)\) 是通道 \(c\) 在空间位置 \(x\) 处的值,
        • \(\mu_{I_c}, \mu_{T_c}\) 是通道 \(c\) 在遮罩区域(如果提供)上的平均值,
        • \(C\) 是通道数(目前仅支持 1 和 3),
        • 求和在图像域中的所有像素 \(x\) 上运行(可选地由遮罩限制)。
        参数
        templateImage - 输入模板图像;必须是 1 或 3 通道,类型为 CV_8U, CV_16U, CV_32F 或 CV_64F。
        inputImage - 要与模板进行比较的输入图像;必须与 templateImage 具有相同的类型和通道数。
        inputMask - 可选的单通道掩码,用于指定 inputImage 和 templateImage 中的有效感兴趣区域。
        返回
        范围在 [-1, 1] 内的 ECC 相似系数。参见:findTransformECC
      • computeECC

        public static double computeECC​(Mat templateImage,
                                        Mat inputImage)
        计算两幅图像之间的增强相关系数 (ECC) 值。增强相关系数 (ECC) 是两幅图像之间相似性的归一化度量,参考:EP08。结果在 [-1, 1] 范围内,其中 1 表示完美相似(模仿射平移和缩放),0 表示无相关性,-1 表示完美负相关。对于单通道图像,ECC 定义为:\( \mathrm{ECC}(I, T) = \frac{\sum_{x} (I(x) - \mu_I)(T(x) - \mu_T)} {\sqrt{\sum_{x} (I(x) - \mu_I)^2} \cdot \sqrt{\sum_{x} (T(x) - \mu_T)^2}} \) 对于多通道图像(例如 3 通道 RGB),公式泛化为:\( \mathrm{ECC}(I, T) = \frac{\sum_{x} \sum_{c=1}^{C} (I_c(x) - \mu_{I_c})(T_c(x) - \mu_{T_c})} {\sqrt{\sum_{x} \sum_{c=1}^{C} (I_c(x) - \mu_{I_c})^2} \cdot \sqrt{\sum_{x} \sum_{c=1}^{C} (T_c(x) - \mu_{T_c})^2}} \) 其中
        • \(I_c(x), T_c(x)\) 是通道 \(c\) 在空间位置 \(x\) 处的值,
        • \(\mu_{I_c}, \mu_{T_c}\) 是通道 \(c\) 在遮罩区域(如果提供)上的平均值,
        • \(C\) 是通道数(目前仅支持 1 和 3),
        • 求和在图像域中的所有像素 \(x\) 上运行(可选地由遮罩限制)。
        参数
        templateImage - 输入模板图像;必须是 1 或 3 通道,类型为 CV_8U, CV_16U, CV_32F 或 CV_64F。
        inputImage - 要与模板进行比较的输入图像;必须与 templateImage 具有相同的类型和通道数。
        返回
        范围在 [-1, 1] 内的 ECC 相似系数。参见:findTransformECC
      • findTransformECC

        public static double findTransformECC​(Mat templateImage,
                                              Mat inputImage,
                                              Mat warpMatrix,
                                              int motionType,
                                              TermCriteria criteria,
                                              Mat inputMask,
                                              int gaussFiltSize)
        根据 ECC 标准寻找两幅图像之间的几何变换(扭曲),参考:EP08。
        参数
        templateImage - 1 或 3 通道模板图像;类型为 CV_8U, CV_16U, CV_32F, CV_64F。
        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 时,第三行将被忽略。与 findHomography 和 estimateRigidTransform 不同,函数 findTransformECC 实现了一种基于强度的相似性的区域对齐。本质上,该函数更新初始变换以粗略对齐图像。如果缺少此信息,则将单位变换(单位矩阵)用作初始化。请注意,如果图像经历剧烈的位移/旋转,则需要进行初步对齐的初始变换(例如,允许图像显示大致相同图像内容的简单欧几里得/相似变换)。在第二幅图像中使用逆向扭曲来获取接近第一幅图像的图像,即在 warpAffine 或 warpPerspective 中使用标志 WARP_INVERSE_MAP。另请参见演示该函数用法的 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)
      • findTransformECCWithMask

        public static double findTransformECCWithMask​(Mat templateImage,
                                                      Mat inputImage,
                                                      Mat templateMask,
                                                      Mat inputMask,
                                                      Mat warpMatrix,
                                                      int motionType,
                                                      TermCriteria criteria,
                                                      int gaussFiltSize)
        根据 ECC 标准,参考:EP08,使用模板图像和输入图像的有效性掩码,寻找两幅图像之间的几何变换(扭曲)。此函数通过为模板图像添加掩码来扩展 findTransformECC()。增强相关系数仅在两幅图像均有效的像素上进行评估:在每次迭代中,inputMask 被扭曲到模板框架中并与 templateMask 结合,只有这些掩码的交集才对目标函数有贡献。
        参数
        templateImage - 1 或 3 通道模板图像;类型为 CV_8U, CV_16U, CV_32F, CV_64F。
        inputImage - 输入图像,应使用最终的 warpMatrix 对其进行扭曲,以便提供与 templateImage 相似的图像,类型与 templateImage 相同。
        templateMask - templateImage 的单通道 8 位掩码,指示对齐中要使用的有效像素。必须与 templateImage 大小相同。
        inputMask - inputImage 的单通道 8 位掩码,指示扭曲前的有效像素。必须与 inputImage 大小相同。
        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 成为唯一的终止标准)。默认值显示在上面的声明中。
        gaussFiltSize - 在计算对齐前用于平滑图像和掩码的高斯模糊滤波器的大小(默认值:5)。参见:findTransformECC, computeECC, estimateAffine2D, estimateAffinePartial2D, findHomography
        返回
        自动生成
      • findTransformECCWithMask

        public static double findTransformECCWithMask​(Mat templateImage,
                                                      Mat inputImage,
                                                      Mat templateMask,
                                                      Mat inputMask,
                                                      Mat warpMatrix,
                                                      int motionType,
                                                      TermCriteria criteria)
        根据 ECC 标准,参考:EP08,使用模板图像和输入图像的有效性掩码,寻找两幅图像之间的几何变换(扭曲)。此函数通过为模板图像添加掩码来扩展 findTransformECC()。增强相关系数仅在两幅图像均有效的像素上进行评估:在每次迭代中,inputMask 被扭曲到模板框架中并与 templateMask 结合,只有这些掩码的交集才对目标函数有贡献。
        参数
        templateImage - 1 或 3 通道模板图像;类型为 CV_8U, CV_16U, CV_32F, CV_64F。
        inputImage - 输入图像,应使用最终的 warpMatrix 对其进行扭曲,以便提供与 templateImage 相似的图像,类型与 templateImage 相同。
        templateMask - templateImage 的单通道 8 位掩码,指示对齐中要使用的有效像素。必须与 templateImage 大小相同。
        inputMask - inputImage 的单通道 8 位掩码,指示扭曲前的有效像素。必须与 inputImage 大小相同。
        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 成为唯一的终止标准)。默认值显示在计算对齐前的上述声明中(默认值:5)。参见:findTransformECC, computeECC, estimateAffine2D, estimateAffinePartial2D, findHomography
        返回
        自动生成
      • findTransformECCWithMask

        public static double findTransformECCWithMask​(Mat templateImage,
                                                      Mat inputImage,
                                                      Mat templateMask,
                                                      Mat inputMask,
                                                      Mat warpMatrix,
                                                      int motionType)
        根据 ECC 标准,参考:EP08,使用模板图像和输入图像的有效性掩码,寻找两幅图像之间的几何变换(扭曲)。此函数通过为模板图像添加掩码来扩展 findTransformECC()。增强相关系数仅在两幅图像均有效的像素上进行评估:在每次迭代中,inputMask 被扭曲到模板框架中并与 templateMask 结合,只有这些掩码的交集才对目标函数有贡献。
        参数
        templateImage - 1 或 3 通道模板图像;类型为 CV_8U, CV_16U, CV_32F, CV_64F。
        inputImage - 输入图像,应使用最终的 warpMatrix 对其进行扭曲,以便提供与 templateImage 相似的图像,类型与 templateImage 相同。
        templateMask - templateImage 的单通道 8 位掩码,指示对齐中要使用的有效像素。必须与 templateImage 大小相同。
        inputMask - inputImage 的单通道 8 位掩码,指示扭曲前的有效像素。必须与 inputImage 大小相同。
        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.epsilon 定义了两次迭代之间相关系数增量的阈值(负的 criteria.epsilon 使 criteria.maxcount 成为唯一的终止标准)。默认值显示在计算对齐前的上述声明中(默认值:5)。参见:findTransformECC, computeECC, estimateAffine2D, estimateAffinePartial2D, findHomography
        返回
        自动生成
      • findTransformECCWithMask

        public static double findTransformECCWithMask​(Mat templateImage,
                                                      Mat inputImage,
                                                      Mat templateMask,
                                                      Mat inputMask,
                                                      Mat warpMatrix)
        根据 ECC 标准,参考:EP08,使用模板图像和输入图像的有效性掩码,寻找两幅图像之间的几何变换(扭曲)。此函数通过为模板图像添加掩码来扩展 findTransformECC()。增强相关系数仅在两幅图像均有效的像素上进行评估:在每次迭代中,inputMask 被扭曲到模板框架中并与 templateMask 结合,只有这些掩码的交集才对目标函数有贡献。
        参数
        templateImage - 1 或 3 通道模板图像;类型为 CV_8U, CV_16U, CV_32F, CV_64F。
        inputImage - 输入图像,应使用最终的 warpMatrix 对其进行扭曲,以便提供与 templateImage 相似的图像,类型与 templateImage 相同。
        templateMask - templateImage 的单通道 8 位掩码,指示对齐中要使用的有效像素。必须与 templateImage 大小相同。
        inputMask - inputImage 的单通道 8 位掩码,指示扭曲前的有效像素。必须与 inputImage 大小相同。
        warpMatrix - 浮点型 \(2\times 3\) 或 \(3\times 3\) 映射矩阵(扭曲)。
        • 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.epsilon 定义了两次迭代之间相关系数增量的阈值(负的 criteria.epsilon 使 criteria.maxcount 成为唯一的终止标准)。默认值显示在计算对齐前的上述声明中(默认值:5)。参见:findTransformECC, computeECC, estimateAffine2D, estimateAffinePartial2D, findHomography
        返回
        自动生成
      • readOpticalFlow

        public static Mat readOpticalFlow​(java.lang.String path)
        读取 .flo 文件
        参数
        path - 要加载的文件路径。函数 readOpticalFlow 从文件中加载流场并将其作为单个矩阵返回。结果矩阵类型为 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)。
        返回
        自动生成