OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
cv::optflow::RLOFOpticalFlowParameter 类参考

用于存储和设置鲁棒局部光流 (RLOF) 算法的参数。更多…

#include <opencv2/optflow/rlofflow.hpp>

cv::optflow::RLOFOpticalFlowParameter 的协作图

公共成员函数

 RLOFOpticalFlowParameter ()
 
int getCrossSegmentationThreshold () const
 
float getGlobalMotionRansacThreshold () const
 
int getLargeWinSize () const
 
int getMaxIteration () const
 
int getMaxLevel () const
 
float getMinEigenValue () const
 
float getNormSigma0 () const
 
float getNormSigma1 () const
 
int getSmallWinSize () const
 
SolverType getSolverType () const
 
SupportRegionType getSupportRegionType () const
 
bool getUseGlobalMotionPrior () const
 
bool getUseIlluminationModel () const
 
bool getUseInitialFlow () const
 
void setCrossSegmentationThreshold (int val)
 
void setGlobalMotionRansacThreshold (float val)
 
void setLargeWinSize (int val)
 
void setMaxIteration (int val)
 
void setMaxLevel (int val)
 
void setMinEigenValue (float val)
 
void setNormSigma0 (float val)
 
void setNormSigma1 (float val)
 
void setSmallWinSize (int val)
 
void setSolverType (SolverType val)
 
void setSupportRegionType (SupportRegionType val)
 
void setUseGlobalMotionPrior (bool val)
 
void setUseIlluminationModel (bool val)
 
void setUseInitialFlow (bool val)
 
void setUseMEstimator (bool val)
 启用或禁用 M 估计器,并使用最小二乘估计器。
 

静态公共成员函数

static Ptr< RLOFOpticalFlowParametercreate ()
 创建 optflow::RLOFOpticalFlowParameter 的实例。
 

公共属性

int crossSegmentationThreshold
 
float globalMotionRansacThreshold
 
int largeWinSize
 
int maxIteration
 
int maxLevel
 
float minEigenValue
 
float normSigma0
 
float normSigma1
 
int smallWinSize
 
SolverType solverType
 
SupportRegionType supportRegionType
 
bool useGlobalMotionPrior
 
bool useIlluminationModel
 
bool useInitialFlow
 

详细描述

用于存储和设置鲁棒局部光流 (RLOF) 算法的参数。

RLOF 是一种快速局部光流方法,在 [238] [239] [240][241] 中进行了描述,类似于 Bouguet 提出的金字塔迭代 Lucas-Kanade 方法 [36]。更多细节和实验可以在以下论文中找到 [242]。该实现源自 optflow::calcOpticalFlowPyrLK()。此 RLOF 实现可以看作是改进的金字塔迭代 Lucas-Kanade,并包含一组改进模块。相对于金字塔迭代 Lucas-Kanade 的主要改进是:

  • 更鲁棒的重新下降 M 估计器框架(见 [238]),以提高运动边界以及出现和消失像素的精度。
  • 自适应支持区域策略,以提高运动边界处的精度,以减少晕轮效应,即在运动/物体边界处 PLK 的过度平滑。 [240] 中提出的基于十字的分割策略 (SR_CROSS) 使用一种简单的分割方法来获得支持区域的最佳形状。
  • 为了处理光照变化(室外序列和阴影),采用基于强度恒定假设的光流方程与 Gennert 和 Negahdaripour 光照模型(见 [241])。可以使用 useIlluminationModel 变量打开/关闭此模型。
  • 通过使用全局运动先验初始化(见 [241])迭代细化,可以显著提高大位移的精度。可以使用 useGlobalMotionPrior 变量打开和关闭此初始化。

可以使用 SparseOpticalFlow 类或函数接口来计算 RLOF 以跟踪一组特征,或使用 DenseOpticalFlow 类或函数接口来计算稠密光流。

另见
optflow::DenseRLOFOpticalFlowoptflow::calcOpticalFlowDenseRLOF()optflow::SparseRLOFOpticalFlowoptflow::calcOpticalFlowSparseRLOF()

构造函数和析构函数文档

◆ RLOFOpticalFlowParameter()

cv::optflow::RLOFOpticalFlowParameter::RLOFOpticalFlowParameter ( )
inline

成员函数文档

◆ create()

static Ptr< RLOFOpticalFlowParameter > cv::optflow::RLOFOpticalFlowParameter::create ( )
static
Python
cv.optflow.RLOFOpticalFlowParameter.create() -> retval
cv.optflow.RLOFOpticalFlowParameter_create() -> retval

创建 optflow::RLOFOpticalFlowParameter 的实例。

◆ getCrossSegmentationThreshold()

int cv::optflow::RLOFOpticalFlowParameter::getCrossSegmentationThreshold ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getCrossSegmentationThreshold() -> retval

◆ getGlobalMotionRansacThreshold()

float cv::optflow::RLOFOpticalFlowParameter::getGlobalMotionRansacThreshold ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getGlobalMotionRansacThreshold() -> retval

◆ getLargeWinSize()

int cv::optflow::RLOFOpticalFlowParameter::getLargeWinSize ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getLargeWinSize() -> retval

◆ getMaxIteration()

int cv::optflow::RLOFOpticalFlowParameter::getMaxIteration ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getMaxIteration() -> retval

◆ getMaxLevel()

int cv::optflow::RLOFOpticalFlowParameter::getMaxLevel ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getMaxLevel() -> retval

◆ getMinEigenValue()

float cv::optflow::RLOFOpticalFlowParameter::getMinEigenValue ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getMinEigenValue() -> retval

◆ getNormSigma0()

float cv::optflow::RLOFOpticalFlowParameter::getNormSigma0 ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getNormSigma0() -> retval

◆ getNormSigma1()

float cv::optflow::RLOFOpticalFlowParameter::getNormSigma1 ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getNormSigma1() -> retval

◆ getSmallWinSize()

int cv::optflow::RLOFOpticalFlowParameter::getSmallWinSize ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getSmallWinSize() -> retval

◆ getSolverType()

SolverType cv::optflow::RLOFOpticalFlowParameter::getSolverType ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getSolverType() -> retval

◆ getSupportRegionType()

SupportRegionType cv::optflow::RLOFOpticalFlowParameter::getSupportRegionType ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getSupportRegionType() -> retval

◆ getUseGlobalMotionPrior()

bool cv::optflow::RLOFOpticalFlowParameter::getUseGlobalMotionPrior ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getUseGlobalMotionPrior() -> retval

◆ getUseIlluminationModel()

bool cv::optflow::RLOFOpticalFlowParameter::getUseIlluminationModel ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getUseIlluminationModel() -> retval

◆ getUseInitialFlow()

bool cv::optflow::RLOFOpticalFlowParameter::getUseInitialFlow ( ) const
Python
cv.optflow.RLOFOpticalFlowParameter.getUseInitialFlow() -> retval

◆ setCrossSegmentationThreshold()

void cv::optflow::RLOFOpticalFlowParameter::setCrossSegmentationThreshold ( int val)
Python
cv.optflow.RLOFOpticalFlowParameter.setCrossSegmentationThreshold(val) ->

◆ setGlobalMotionRansacThreshold()

void cv::optflow::RLOFOpticalFlowParameter::setGlobalMotionRansacThreshold ( float val)
Python
cv.optflow.RLOFOpticalFlowParameter.setGlobalMotionRansacThreshold(val) ->

◆ setLargeWinSize()

void cv::optflow::RLOFOpticalFlowParameter::setLargeWinSize ( int val)
Python
cv.optflow.RLOFOpticalFlowParameter.setLargeWinSize(val) ->

◆ setMaxIteration()

void cv::optflow::RLOFOpticalFlowParameter::setMaxIteration ( int val)
Python
cv.optflow.RLOFOpticalFlowParameter.setMaxIteration(val) ->

◆ setMaxLevel()

void cv::optflow::RLOFOpticalFlowParameter::setMaxLevel ( int val)
Python
cv.optflow.RLOFOpticalFlowParameter.setMaxLevel(val) ->

◆ setMinEigenValue()

void cv::optflow::RLOFOpticalFlowParameter::setMinEigenValue ( float val)
Python
cv.optflow.RLOFOpticalFlowParameter.setMinEigenValue(val) ->

◆ setNormSigma0()

void cv::optflow::RLOFOpticalFlowParameter::setNormSigma0 ( float val)
Python
cv.optflow.RLOFOpticalFlowParameter.setNormSigma0(val) ->

◆ setNormSigma1()

void cv::optflow::RLOFOpticalFlowParameter::setNormSigma1 ( float val)
Python
cv.optflow.RLOFOpticalFlowParameter.setNormSigma1(val) ->

◆ setSmallWinSize()

void cv::optflow::RLOFOpticalFlowParameter::setSmallWinSize ( int val)
Python
cv.optflow.RLOFOpticalFlowParameter.setSmallWinSize(val) ->

◆ setSolverType()

void cv::optflow::RLOFOpticalFlowParameter::setSolverType ( SolverType val)
Python
cv.optflow.RLOFOpticalFlowParameter.setSolverType(val) ->

◆ setSupportRegionType()

void cv::optflow::RLOFOpticalFlowParameter::setSupportRegionType ( SupportRegionType val)
Python
cv.optflow.RLOFOpticalFlowParameter.setSupportRegionType(val) ->

◆ setUseGlobalMotionPrior()

void cv::optflow::RLOFOpticalFlowParameter::setUseGlobalMotionPrior ( bool val)
Python
cv.optflow.RLOFOpticalFlowParameter.setUseGlobalMotionPrior(val) ->

◆ setUseIlluminationModel()

void cv::optflow::RLOFOpticalFlowParameter::setUseIlluminationModel ( bool val)
Python
cv.optflow.RLOFOpticalFlowParameter.setUseIlluminationModel(val) ->

◆ setUseInitialFlow()

void cv::optflow::RLOFOpticalFlowParameter::setUseInitialFlow ( bool val)
Python
cv.optflow.RLOFOpticalFlowParameter.setUseInitialFlow(val) ->

◆ setUseMEstimator()

void cv::optflow::RLOFOpticalFlowParameter::setUseMEstimator ( bool val)
Python
cv.optflow.RLOFOpticalFlowParameter.setUseMEstimator(val) ->

启用或禁用 M 估计器,并使用最小二乘估计器。

通过将sigma参数设置为(3.2, 7.0)来启用M估计器。禁用M估计器可以减少运行时间,而启用M估计器可以提高精度。

参数
val如果为真,则使用M估计器;如果为假,则使用最小二乘估计器。
另见
setNormSigma0, setNormSigma1

成员数据文档

◆ crossSegmentationThreshold

int cv::optflow::RLOFOpticalFlowParameter::crossSegmentationThreshold

基于交叉分割的颜色相似性阈值,遵循[240]。(仅在supportRegionType为SR_CROSS时使用)。使用基于交叉的分割可以更准确地计算运动边界。

◆ globalMotionRansacThreshold

float cv::optflow::RLOFOpticalFlowParameter::globalMotionRansacThreshold

为了应用全局运动先验,将在规则采样上计算运动向量,这些向量是使用RANSAC进行单应性估计的基础。重投影阈值基于运动向量幅度的第n个百分位数(由该值[0…100]给出)。有关更多详细信息,请参见[241]

◆ largeWinSize

int cv::optflow::RLOFOpticalFlowParameter::largeWinSize

支持区域的最大窗口大小。如果supportRegionType为SR_FIXED,则此值给出精确的支持区域大小。RLOF的速度与应用的窗口大小有关。窗口大小越小,运行时间越短,但方法对噪声越敏感。

◆ maxIteration

int cv::optflow::RLOFOpticalFlowParameter::maxIteration

用于迭代细化的最大迭代次数。较低的值可以减少运行时间,但也减少精度。

◆ maxLevel

int cv::optflow::RLOFOpticalFlowParameter::maxLevel

使用的最大金字塔层数。此值越大,获得长程运动的精确解的可能性越大。运行时间与该参数线性相关。

◆ minEigenValue

float cv::optflow::RLOFOpticalFlowParameter::minEigenValue

梯度矩阵最小特征值阈值,用于定义何时中止迭代细化。

◆ normSigma0

float cv::optflow::RLOFOpticalFlowParameter::normSigma0

文献[238]中引入的缩减Hampel范数的σ参数。如果σ = std::numeric_limits::max(),则将使用最小二乘估计器而不是M估计器。虽然M估计器对支持区域中的异常值更稳健,但最小二乘法计算速度更快。

◆ normSigma1

float cv::optflow::RLOFOpticalFlowParameter::normSigma1

文献[238]中引入的缩减Hampel范数的σ参数。如果σ = std::numeric_limits::max(),则将使用最小二乘估计器而不是M估计器。虽然M估计器对支持区域中的异常值更稳健,但最小二乘法计算速度更快。

◆ smallWinSize

int cv::optflow::RLOFOpticalFlowParameter::smallWinSize

支持区域的最小窗口大小。仅当supportRegionType为SR_CROSS时使用此参数。

◆ solverType

SolverType cv::optflow::RLOFOpticalFlowParameter::solverType

变量指定迭代细化策略。使用ST_BILINEAR时,请考虑引用[239]

◆ supportRegionType

SupportRegionType cv::optflow::RLOFOpticalFlowParameter::supportRegionType

变量指定支持区域形状提取或收缩策略。

◆ useGlobalMotionPrior

bool cv::optflow::RLOFOpticalFlowParameter::useGlobalMotionPrior

使用全局运动先验初始化,在[241]中引入。它允许对长程运动更精确。启用全局运动先验初始化会稍微增加计算复杂度。

◆ useIlluminationModel

bool cv::optflow::RLOFOpticalFlowParameter::useIlluminationModel

使用Gennert和Negahdaripour光照模型代替强度亮度约束。(在[241]中提出)此模型定义如下:

\[ I(\mathbf{x},t) + m \cdot I(\mathbf{x},t) + c = I(\mathbf{x},t+1) \]

包含乘法项m和加法项c,这使得估计对光照变化更鲁棒。启用光照模型会增加计算复杂度。

◆ useInitialFlow

bool cv::optflow::RLOFOpticalFlowParameter::useInitialFlow

使用下一个点列表作为初始值。良好的初始化可以提高算法精度,并通过更快的迭代细化收敛来减少运行时间。


此类的文档是从以下文件生成的: