OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
全局运动估计

详细描述

视频稳定模块包含一组用于点云之间或图像之间全局运动估计的函数和类。在后一种情况下,特征会被提取并在内部匹配。为了方便起见,运动估计函数被封装到类中。函数和类都可用。

类  cv::videostab::FromFileMotionReader
 
类  cv::videostab::GaussianMotionFilter
 
类  cv::videostab::ImageMotionEstimatorBase
 以帧为输入的全局 2D 运动估计方法的基础类。更多...
 
类  cv::videostab::IMotionStabilizer
 
类  cv::videostab::KeypointBasedMotionEstimator
 描述一种使用关键点检测和光流进行匹配的全局 2D 运动估计方法。更多...
 
类  cv::videostab::LpMotionStabilizer
 
类  cv::videostab::MotionEstimatorBase
 所有全局运动估计方法的基础类。更多...
 
类  cv::videostab::MotionEstimatorL1
 描述一种最小化 L1 误差的全局 2D 运动估计方法。更多...
 
类  cv::videostab::MotionEstimatorRansacL2
 描述一种基于 RANSAC 的鲁棒全局 2D 运动估计方法,该方法最小化 L2 误差。更多...
 
类  cv::videostab::MotionFilterBase
 
类  cv::videostab::MotionStabilizationPipeline
 
结构体  cv::videostab::RansacParams
 描述 RANSAC 方法参数。更多...
 
类  cv::videostab::ToFileMotionWriter
 

枚举

枚举  cv::videostab::MotionModel {
  cv::videostab::MM_TRANSLATION = 0 ,
  cv::videostab::MM_TRANSLATION_AND_SCALE = 1 ,
  cv::videostab::MM_ROTATION = 2 ,
  cv::videostab::MM_RIGID = 3 ,
  cv::videostab::MM_SIMILARITY = 4 ,
  cv::videostab::MM_AFFINE = 5 ,
  cv::videostab::MM_HOMOGRAPHY = 6 ,
  cv::videostab::MM_UNKNOWN = 7
}
 描述两个点云之间的运动模型。更多...
 

函数

 cv::videostab::GaussianMotionFilter::GaussianMotionFilter (int radius=15, float stdev=-1.f)
 
 cv::videostab::RansacParams::RansacParams (int size, float thresh, float eps, float prob)
 构造函数。
 
Mat cv::videostab::ensureInclusionConstraint (const Mat &M, Size size, float trimRatio)
 
Mat cv::videostab::estimateGlobalMotionLeastSquares (InputOutputArray points0, InputOutputArray points1, int model=MM_AFFINE, float *rmse=0)
 以最小二乘法估计两个 2D 点云之间的最佳全局运动。
 
Mat cv::videostab::estimateGlobalMotionRansac (InputArray points0, InputArray points1, int model=MM_AFFINE, const RansacParams &params=RansacParams::default2dMotion(MM_AFFINE), float *rmse=0, int *ninliers=0)
 鲁棒地(使用 RANSAC 方法)估计两个 2D 点云之间的最佳全局运动。
 
float cv::videostab::estimateOptimalTrimRatio (const Mat &M, Size size)
 
Mat cv::videostab::getMotion (int from, int to, const std::vector< Mat > &motions)
 假设所有中间运动已知,计算两个帧之间的运动。
 

枚举类型文档

◆ MotionModel

#include <opencv2/videostab/motion_core.hpp>

描述两个点云之间的运动模型。

枚举器
MM_TRANSLATION 
Python:cv.videostab.MM_TRANSLATION
MM_TRANSLATION_AND_SCALE 
Python:cv.videostab.MM_TRANSLATION_AND_SCALE
MM_ROTATION 
Python:cv.videostab.MM_ROTATION
MM_RIGID 
Python:cv.videostab.MM_RIGID
MM_SIMILARITY 
Python:cv.videostab.MM_SIMILARITY
MM_AFFINE 
Python:cv.videostab.MM_AFFINE
MM_HOMOGRAPHY 
Python:cv.videostab.MM_HOMOGRAPHY
MM_UNKNOWN 
Python:cv.videostab.MM_UNKNOWN

函数文档

◆ GaussianMotionFilter()

cv::videostab::GaussianMotionFilter::GaussianMotionFilter ( int radius = 15,
float stdev = -1.f )
inline

#include <opencv2/videostab/motion_stabilizing.hpp>

此函数的调用图如下

◆ RansacParams()

cv::videostab::RansacParams::RansacParams ( int size,
float thresh,
float eps,
float prob )
inline

#include <opencv2/videostab/motion_core.hpp>

构造函数。

参数
size子集大小。
thresh最大重投影误差值,用于分类为内点。
eps不正确对应关系的最大比率。
仅用于RANSAC或LMedS方法的参数。它指定了估计矩阵正确的期望置信水平(概率)。所需的成功概率。

◆ ensureInclusionConstraint()

Mat cv::videostab::ensureInclusionConstraint ( const Mat & M,
Size size,
float trimRatio )

◆ estimateGlobalMotionLeastSquares()

Mat cv::videostab::estimateGlobalMotionLeastSquares ( InputOutputArray points0,
InputOutputArray 3x3基本矩阵。,
int model = MM_AFFINE,
float * rmse = 0 )

#include <opencv2/videostab/global_motion.hpp>

以最小二乘法估计两个 2D 点云之间的最佳全局运动。

注意
就地工作并更改输入点数组。
参数
points02D 点的源集 (32F)。
3x3基本矩阵。2D 点的目标集 (32F)。
model运动模型(最高可达 MM_AFFINE)。
rmse最终均方根误差。
返回
3x3 2D 变换矩阵 (32F)。

◆ estimateGlobalMotionRansac()

Mat cv::videostab::estimateGlobalMotionRansac ( InputArray points0,
InputArray 3x3基本矩阵。,
int model = MM_AFFINE,
const RansacParams & params = RansacParams::default2dMotion(MM_AFFINE),
float * rmse = 0,
int * ninliers = 0 )

#include <opencv2/videostab/global_motion.hpp>

鲁棒地(使用 RANSAC 方法)估计两个 2D 点云之间的最佳全局运动。

参数
points02D 点的源集 (32F)。
3x3基本矩阵。2D 点的目标集 (32F)。
model运动模型。参见 cv::videostab::MotionModel
paramsRANSAC 方法参数。参见 videostab::RansacParams
rmse最终均方根误差。
ninliers最终内点数。

◆ estimateOptimalTrimRatio()

float cv::videostab::estimateOptimalTrimRatio ( const Mat & M,
Size size )

◆ getMotion()

Mat cv::videostab::getMotion ( int from,
int to,
const std::vector< Mat > & motions )

#include <opencv2/videostab/global_motion.hpp>

假设所有中间运动已知,计算两个帧之间的运动。

参数
from源帧索引。
to目标帧索引。
motions成对运动。motions[i] 表示从帧 i 到帧 i+1 的运动
返回
从源帧到目标帧的运动。
此函数的调用图如下