Zach, Pock 和 Bischof 双 TV-L1 光流方法的实现。 更多...
#include <opencv2/cudaoptflow.hpp>
|
static Ptr< OpticalFlowDual_TVL1 > | create (double tau=0.25, double lambda=0.15, double theta=0.3, int nscales=5, int warps=5, double epsilon=0.01, int iterations=300, double scaleStep=0.8, double gamma=0.0, bool useInitialFlow=false) |
|
template<typename _Tp > |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
| 从文件中加载算法。
|
|
template<typename _Tp > |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
| 从字符串加载算法。
|
|
template<typename _Tp > |
static Ptr< _Tp > | read (const FileNode &fn) |
| 从文件节点读取算法。
|
|
Zach、Pock 和 Bischof 双 TV-L1 光流方法的实现。
- 注意
- C. Zach、T. Pock 和 H. Bischof,“基于对偶性的实时 TV-L1 光流方法”。
- Javier Sanchez、Enric Meinhardt-Llopis 和 Gabriele Facciolo。“TV-L1 光流估计”。
◆ create()
static Ptr< OpticalFlowDual_TVL1 > cv::cuda::OpticalFlowDual_TVL1::create |
( |
double | tau = 0.25, |
|
|
double | lambda = 0.15, |
|
|
double | theta = 0.3, |
|
|
int | nscales = 5, |
|
|
int | warps = 5, |
|
|
double | epsilon = 0.01, |
|
|
int | 迭代次数 (iterations) = 300, |
|
|
double | 尺度步长 (scaleStep) = 0.8, |
|
|
double | 伽马值 (gamma) = 0.0, |
|
|
布尔值 (bool) | 使用初始光流 (useInitialFlow) = false ) |
|
静态 (static) |
◆ 获取Epsilon值 (getEpsilon())
虚函数 double cv::cuda::OpticalFlowDual_TVL1::getEpsilon |
( |
| ) |
常量 (const) |
|
纯虚函数 (pure virtual) |
数值方案中使用的停止准则阈值,它是在精度和运行时间之间的权衡。较小的值将产生更精确的解,但代价是收敛速度较慢。
◆ 获取伽马值 (getGamma())
虚函数 double cv::cuda::OpticalFlowDual_TVL1::getGamma |
( |
| ) |
常量 (const) |
|
纯虚函数 (pure virtual) |
用于 (u - v)^2 的权重参数,紧致参数。它作为附着项和正则化项之间的联系。理论上,为了保持两部分的对应关系,它应该具有较小的值。该方法对于该参数的较大范围的值都是稳定的。
◆ 获取Lambda值 (getLambda())
虚函数 double cv::cuda::OpticalFlowDual_TVL1::getLambda |
( |
| ) |
常量 (const) |
|
纯虚函数 (pure virtual) |
数据项的权重参数,附着参数。这是最相关的参数,它决定了输出的平滑度。此参数越小,获得的解就越平滑。它取决于图像运动的范围,因此其值应针对每个图像序列进行调整。
◆ 获取迭代次数 (getNumIterations())
虚函数 int cv::cuda::OpticalFlowDual_TVL1::getNumIterations |
( |
| ) |
常量 (const) |
|
纯虚函数 (pure virtual) |
◆ 获取尺度数量 (getNumScales())
虚函数 int cv::cuda::OpticalFlowDual_TVL1::getNumScales |
( |
| ) |
常量 (const) |
|
纯虚函数 (pure virtual) |
◆ 获取扭曲次数 (getNumWarps())
虚函数 int cv::cuda::OpticalFlowDual_TVL1::getNumWarps |
( |
| ) |
常量 (const) |
|
纯虚函数 (pure virtual) |
每个尺度的扭曲次数。表示每个尺度计算 I1(x+u0) 和 grad( I1(x+u0) ) 的次数。这是一个保证方法稳定性的参数。它还会影响运行时间,因此它是速度和精度之间的折衷。
◆ 获取尺度步长 (getScaleStep())
虚函数 double cv::cuda::OpticalFlowDual_TVL1::getScaleStep |
( |
| ) |
常量 (const) |
|
纯虚函数 (pure virtual) |
◆ 获取Tau值 (getTau())
虚函数 double cv::cuda::OpticalFlowDual_TVL1::getTau |
( |
| ) |
常量 (const) |
|
纯虚函数 (pure virtual) |
◆ 获取Theta值 (getTheta())
虚函数 double cv::cuda::OpticalFlowDual_TVL1::getTheta |
( |
| ) |
常量 (const) |
|
纯虚函数 (pure virtual) |
用于运动估计的参数。它添加了一个允许光照变化的变量。如果您有变化的光照,请将此参数设置为 1。参见:Chambolle 等人,用于凸问题的应用成像的二阶原始对偶算法,数学成像和视觉杂志,2011 年 5 月,第 40 卷,第 1 期,第 120-145 页
◆ 获取是否使用初始光流 (getUseInitialFlow())
虚函数 bool cv::cuda::OpticalFlowDual_TVL1::getUseInitialFlow |
( |
| ) |
常量 (const) |
|
纯虚函数 (pure virtual) |
◆ 设置Epsilon值 (setEpsilon())
虚函数 void cv::cuda::OpticalFlowDual_TVL1::setEpsilon |
( |
double | epsilon | ) |
|
|
纯虚函数 (pure virtual) |
◆ 设置伽马值 (setGamma())
虚函数 void cv::cuda::OpticalFlowDual_TVL1::setGamma |
( |
double | gamma | ) |
|
|
纯虚函数 (pure virtual) |
◆ 设置Lambda值 (setLambda())
虚函数 void cv::cuda::OpticalFlowDual_TVL1::setLambda |
( |
double | lambda | ) |
|
|
纯虚函数 (pure virtual) |
◆ 设置迭代次数 (setNumIterations())
虚函数 void cv::cuda::OpticalFlowDual_TVL1::setNumIterations |
( |
int | iterations | ) |
|
|
纯虚函数 (pure virtual) |
◆ 设置尺度数量 (setNumScales())
虚函数 void cv::cuda::OpticalFlowDual_TVL1::setNumScales |
( |
int | nscales | ) |
|
|
纯虚函数 (pure virtual) |
◆ 设置扭曲次数 (setNumWarps())
虚函数 void cv::cuda::OpticalFlowDual_TVL1::setNumWarps |
( |
int | warps | ) |
|
|
纯虚函数 (pure virtual) |
◆ 设置尺度步长 (setScaleStep())
虚函数 void cv::cuda::OpticalFlowDual_TVL1::setScaleStep |
( |
double | scaleStep | ) |
|
|
纯虚函数 (pure virtual) |
◆ 设置Tau值 (setTau())
虚函数 void cv::cuda::OpticalFlowDual_TVL1::setTau |
( |
double | tau | ) |
|
|
纯虚函数 (pure virtual) |
◆ 设置Theta值 (setTheta())
虚函数 void cv::cuda::OpticalFlowDual_TVL1::setTheta |
( |
double | theta | ) |
|
|
纯虚函数 (pure virtual) |
◆ 设置是否使用初始光流 (setUseInitialFlow())
虚函数 void cv::cuda::OpticalFlowDual_TVL1::setUseInitialFlow |
( |
布尔值 (bool) | useInitialFlow | ) |
|
|
纯虚函数 (pure virtual) |
此类的文档是从以下文件生成的: