OpenCV 4.12.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 (全局运动RANSAC阈值)
 
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 是一种快速局部光流方法,在 [241] [242] [243][244] 中有描述,类似于 [37] 提出的金字塔迭代 Lucas-Kanade 方法。更多细节和实验可在以下论文 [245] 中找到。该实现源自 optflow::calcOpticalFlowPyrLK()。此 RLOF 实现可视为改进的金字塔迭代 Lucas-Kanade 方法,并包含一系列改进模块。相对于金字塔迭代 Lucas-Kanade 方法,主要改进包括:

  • 一个更鲁棒的重下降 M 估计器框架(参见 [241]),用于提高运动边界以及出现和消失像素处的精度。
  • 自适应支持区域策略,以提高运动边界处的精度,减少光晕效应,即 PLK 在运动/对象边界处的过度平滑。在 [243] 中提出的基于交叉的分割策略(SR_CROSS)使用简单的分割方法来获得支持区域的最佳形状。
  • 为了处理光照变化(室外序列和阴影),基于强度不变性假设的光流方程已采用 Gennert 和 Negahdaripour 光照模型(参见 [244])。此模型可通过 useIlluminationModel 变量启用/禁用。
  • 通过使用迭代优化中的全局运动先验初始化(参见 [244]),可以显著提高大位移的精度。此初始化可通过 useGlobalMotionPrior 变量启用和禁用。

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

另请参见
optflow::DenseRLOFOpticalFlow, optflow::calcOpticalFlowDenseRLOF(), optflow::SparseRLOFOpticalFlow, optflow::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 估计器可减少运行时间,而启用可提高精度。

参数
val如果为 true,则使用 M 估计器。如果为 false,则使用最小二乘估计器。
另请参见
setNormSigma0, setNormSigma1

成员数据文档

◆ crossSegmentationThreshold

int cv::optflow::RLOFOpticalFlowParameter::crossSegmentationThreshold

根据 [243] 基于交叉分割使用的颜色相似度阈值。(仅当 supportRegionType 为 SR_CROSS 时使用)。通过基于交叉的分割,可以更准确地计算运动边界。

◆ globalMotionRansacThreshold

float cv::optflow::RLOFOpticalFlowParameter::globalMotionRansacThreshold

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

◆ 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

[241] 中引入的收缩 Hampel 范数的 &sigma 参数。如果 &sigma = std::numeric_limist<float>::max(),则将使用最小二乘估计器而不是 M 估计器。尽管 M 估计器对支持区域中的异常值更鲁棒,但最小二乘法计算速度更快。

◆ normSigma1

float cv::optflow::RLOFOpticalFlowParameter::normSigma1

[241] 中引入的收缩 Hampel 范数的 &sigma 参数。如果 &sigma = std::numeric_limist<float>::max(),则将使用最小二乘估计器而不是 M 估计器。尽管 M 估计器对支持区域中的异常值更鲁棒,但最小二乘法计算速度更快。

◆ smallWinSize

int cv::optflow::RLOFOpticalFlowParameter::smallWinSize

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

◆ solverType

SolverType cv::optflow::RLOFOpticalFlowParameter::solverType

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

◆ supportRegionType

SupportRegionType cv::optflow::RLOFOpticalFlowParameter::supportRegionType

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

◆ useGlobalMotionPrior

bool cv::optflow::RLOFOpticalFlowParameter::useGlobalMotionPrior

全局运动先验初始化已在 [244] 中引入。它允许对长距离运动获得更高的精度。启用全局运动先验初始化会略微增加计算复杂度。

◆ useIlluminationModel

bool cv::optflow::RLOFOpticalFlowParameter::useIlluminationModel

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

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

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

◆ useInitialFlow

bool cv::optflow::RLOFOpticalFlowParameter::useInitialFlow

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


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