OpenCV 4.11.0
开源计算机视觉库
加载中…
搜索中…
未找到匹配项
cv::optflow::DualTVL1OpticalFlow 类参考抽象类

“Dual TV L1” 光流 算法更多…

#include <opencv2/optflow.hpp>

cv::optflow::DualTVL1OpticalFlow 的协作图

公有成员函数

virtual double getEpsilon () const =0
 数值方案中使用的停止准则阈值,它是在精度和运行时间之间的权衡。
 
virtual double getGamma () const =0
 附加照明变化项的系数
 
virtual int getInnerIterations () const =0
 数值方案中使用的内部迭代次数(异常值过滤之间)。
 
virtual double getLambda () const =0
 数据项的权重参数,附着参数。
 
virtual int getMedianFiltering () const =0
 中值滤波器内核大小(1 = 无滤波器)(3 或 5)
 
virtual int getOuterIterations () const =0
 数值方案中使用的外部迭代次数(内部循环次数)。
 
virtual int getScalesNumber () const =0
 用于创建图像金字塔的尺度数。
 
virtual double getScaleStep () const =0
 尺度之间的步长(<1)
 
virtual double getTau () const =0
 数值方案的时间步长。
 
virtual double getTheta () const =0
 (u - v)^2 的权重参数,紧密度参数。
 
virtual bool getUseInitialFlow () const =0
 使用初始光流。
 
virtual int getWarpingsNumber () const =0
 每个尺度的扭曲次数。
 
virtual void setEpsilon (double val)=0
 数值方案中使用的停止准则阈值,它是在精度和运行时间之间的权衡。
 
virtual void setGamma (double val)=0
 附加照明变化项的系数
 
virtual void setInnerIterations (int val)=0
 数值方案中使用的内部迭代次数(异常值过滤之间)。
 
virtual void setLambda (double val)=0
 数据项的权重参数,附着参数。
 
virtual void setMedianFiltering (int val)=0
 中值滤波器内核大小(1 = 无滤波器)(3 或 5)
 
virtual void setOuterIterations (int val)=0
 数值方案中使用的外部迭代次数(内部循环次数)。
 
virtual void setScalesNumber (int val)=0
 用于创建图像金字塔的尺度数。
 
virtual void setScaleStep (double val)=0
 尺度之间的步长(<1)
 
virtual void setTau (double val)=0
 数值方案的时间步长。
 
virtual void setTheta (double val)=0
 (u - v)^2 的权重参数,紧密度参数。
 
virtual void setUseInitialFlow (bool val)=0
 使用初始光流。
 
virtual void setWarpingsNumber (int val)=0
 每个尺度的扭曲次数。
 
- 继承自 cv::DenseOpticalFlow 的公有成员函数
virtual void calc (InputArray I0, InputArray I1, InputOutputArray flow)=0
 计算光流。
 
virtual void collectGarbage ()=0
 释放所有内部缓冲区。
 
- 继承自 cv::Algorithm 的公有成员函数
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除算法状态。
 
virtual bool empty () const
 如果 算法 为空(例如,在开始时或读取不成功后),则返回 true。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 从文件存储中读取算法参数。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 将算法参数存储到文件存储中。
 
void write (FileStorage &fs, const String &name) const
 

静态公有成员函数

static Ptr< DualTVL1OpticalFlowcreate (double tau=0.25, double lambda=0.15, double theta=0.3, int nscales=5, int warps=5, double epsilon=0.01, int innnerIterations=30, int outerIterations=10, double scaleStep=0.8, double gamma=0.0, int medianFiltering=5, bool useInitialFlow=false)
 创建 cv::DualTVL1OpticalFlow 的实例。
 
- 继承自 cv::Algorithm 的静态公有成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串中加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 

其他继承成员

- 继承自 cv::Algorithm 的保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

“Dual TV L1” 光流 算法

该类实现了文献[314][234]中描述的“双TV L1”光流算法。以下是控制算法的该类重要成员,您可以在构造类实例后设置这些成员。

  • 成员 double tau 数值方案的时间步长。
  • 成员 double lambda 数据项的权重参数,附着参数。这是最相关的参数,它决定了输出的平滑度。该参数越小,我们获得的解越平滑。它取决于图像运动的范围,因此其值应针对每个图像序列进行调整。
  • 成员 double theta (u - v)\^2 的权重参数,紧密度参数。它作为附着项和正则化项之间的联系。理论上,它应该具有较小的值以保持两部分的对应关系。该方法对于该参数的大范围值是稳定的。
  • 成员 int nscales 用于创建图像金字塔的尺度数量。
  • 成员 int warps 每尺度的翘曲次数。表示每尺度计算 I1(x+u0) 和 grad( I1(x+u0) ) 的次数。这是一个确保方法稳定性的参数。它也会影响运行时间,因此它是速度和精度之间的折衷。
  • 成员 double epsilon 数值方案中使用的停止准则阈值,它是精度和运行时间之间的权衡。较小的值将产生更精确的解,但代价是收敛速度较慢。
  • 成员 int iterations 数值方案中使用的停止准则迭代次数。

C. Zach, T. Pock 和 H. Bischof,“基于对偶的实时 TV-L1 光流方法”。Javier Sanchez、Enric Meinhardt-Llopis 和 Gabriele Facciolo。“TV-L1 光流估计”。

成员函数文档

◆ create()

static Ptr< DualTVL1OpticalFlow > cv::optflow::DualTVL1OpticalFlow::create ( double tau = 0.25,
double lambda = 0.15,
double theta = 0.3,
int nscales = 5,
int warps = 5,
double epsilon = 0.01,
int innnerIterations = 30,
int outerIterations = 10,
double scaleStep = 0.8,
double gamma = 0.0,
int medianFiltering = 5,
bool useInitialFlow = false )
static
Python
cv.optflow.DualTVL1OpticalFlow.create([, tau[, lambda_[, theta[, nscales[, warps[, epsilon[, innnerIterations[, outerIterations[, scaleStep[, gamma[, medianFiltering[, useInitialFlow]]]]]]]]]]]]) -> retval
cv.optflow.DualTVL1OpticalFlow_create([, tau[, lambda_[, theta[, nscales[, warps[, epsilon[, innnerIterations[, outerIterations[, scaleStep[, gamma[, medianFiltering[, useInitialFlow]]]]]]]]]]]]) -> retval

创建 cv::DualTVL1OpticalFlow 的实例。

◆ getEpsilon()

virtual double cv::optflow::DualTVL1OpticalFlow::getEpsilon ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getEpsilon() -> retval

数值方案中使用的停止准则阈值,它是在精度和运行时间之间的权衡。

参见
setEpsilon

◆ getGamma()

virtual double cv::optflow::DualTVL1OpticalFlow::getGamma ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getGamma() -> retval

附加照明变化项的系数

参见
setGamma

◆ getInnerIterations()

virtual int cv::optflow::DualTVL1OpticalFlow::getInnerIterations ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getInnerIterations() -> retval

数值方案中使用的内部迭代次数(异常值过滤之间)。

参见
setInnerIterations

◆ getLambda()

virtual double cv::optflow::DualTVL1OpticalFlow::getLambda ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getLambda() -> retval

数据项的权重参数,附着参数。

参见
setLambda

◆ getMedianFiltering()

virtual int cv::optflow::DualTVL1OpticalFlow::getMedianFiltering ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getMedianFiltering() -> retval

中值滤波器内核大小(1 = 无滤波器)(3 或 5)

参见
setMedianFiltering

◆ getOuterIterations()

virtual int cv::optflow::DualTVL1OpticalFlow::getOuterIterations ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getOuterIterations() -> retval

数值方案中使用的外部迭代次数(内部循环次数)。

参见
setOuterIterations

◆ getScalesNumber()

virtual int cv::optflow::DualTVL1OpticalFlow::getScalesNumber ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getScalesNumber() -> retval

用于创建图像金字塔的尺度数。

参见
setScalesNumber

◆ getScaleStep()

virtual double cv::optflow::DualTVL1OpticalFlow::getScaleStep ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getScaleStep() -> retval

尺度之间的步长(<1)

参见
setScaleStep

◆ getTau()

virtual double cv::optflow::DualTVL1OpticalFlow::getTau ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getTau() -> retval

数值方案的时间步长。

参见
setTau

◆ getTheta()

virtual double cv::optflow::DualTVL1OpticalFlow::getTheta ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getTheta() -> retval

(u - v)^2 的权重参数,紧密度参数。

参见
setTheta

◆ getUseInitialFlow()

virtual bool cv::optflow::DualTVL1OpticalFlow::getUseInitialFlow ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getUseInitialFlow() -> retval

使用初始光流。

参见
setUseInitialFlow

◆ getWarpingsNumber()

virtual int cv::optflow::DualTVL1OpticalFlow::getWarpingsNumber ( ) const
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.getWarpingsNumber() -> retval

每个尺度的扭曲次数。

参见
setWarpingsNumber

◆ setEpsilon()

virtual void cv::optflow::DualTVL1OpticalFlow::setEpsilon ( double val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setEpsilon(val) ->

数值方案中使用的停止准则阈值,它是在精度和运行时间之间的权衡。

参见
getEpsilon

◆ setGamma()

virtual void cv::optflow::DualTVL1OpticalFlow::setGamma ( double val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setGamma(val) ->

附加照明变化项的系数

参见
getGamma

◆ setInnerIterations()

virtual void cv::optflow::DualTVL1OpticalFlow::setInnerIterations ( int val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setInnerIterations(val) ->

数值方案中使用的内部迭代次数(异常值过滤之间)。

参见
getInnerIterations

◆ setLambda()

virtual void cv::optflow::DualTVL1OpticalFlow::setLambda ( double val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setLambda(val) ->

数据项的权重参数,附着参数。

参见
getLambda

◆ setMedianFiltering()

virtual void cv::optflow::DualTVL1OpticalFlow::setMedianFiltering ( int val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setMedianFiltering(val) ->

中值滤波器内核大小(1 = 无滤波器)(3 或 5)

参见
getMedianFiltering

◆ setOuterIterations()

virtual void cv::optflow::DualTVL1OpticalFlow::setOuterIterations ( int val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setOuterIterations(val) ->

数值方案中使用的外部迭代次数(内部循环次数)。

参见
getOuterIterations

◆ setScalesNumber()

virtual void cv::optflow::DualTVL1OpticalFlow::setScalesNumber ( int val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setScalesNumber(val) ->

用于创建图像金字塔的尺度数。

参见
getScalesNumber

◆ setScaleStep()

virtual void cv::optflow::DualTVL1OpticalFlow::setScaleStep ( double val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setScaleStep(val) ->

尺度之间的步长(<1)

参见
getScaleStep

◆ setTau()

virtual void cv::optflow::DualTVL1OpticalFlow::setTau ( double val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setTau(val) ->

数值方案的时间步长。

参见
getTau

◆ setTheta()

virtual void cv::optflow::DualTVL1OpticalFlow::setTheta ( double val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setTheta(val) ->

(u - v)^2 的权重参数,紧密度参数。

参见
getTheta

◆ setUseInitialFlow()

virtual void cv::optflow::DualTVL1OpticalFlow::setUseInitialFlow ( bool val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setUseInitialFlow(val) ->

使用初始光流。

参见
getUseInitialFlow

◆ setWarpingsNumber()

virtual void cv::optflow::DualTVL1OpticalFlow::setWarpingsNumber ( int val)
纯虚函数
Python
cv.optflow.DualTVL1OpticalFlow.setWarpingsNumber(val) ->

每个尺度的扭曲次数。

参见
getWarpingsNumber

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