OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
cv::DISOpticalFlow 类参考抽象

DIS 光流算法。 更多...

#include <opencv2/video/tracking.hpp>

cv::DISOpticalFlow 的协作图

公共类型

枚举  {
  PRESET_ULTRAFAST = 0 ,
  PRESET_FAST = 1 ,
  PRESET_MEDIUM = 2
}
 

公共成员函数

virtual int getFinestScale () const =0
 计算光流的高斯金字塔最精细级别(零级别对应于原始图像分辨率)。最终光流通过双线性上采样获得。
 
virtual int getGradientDescentIterations () const =0
 块逆搜索阶段中梯度下降迭代的最大次数。在某些情况下,更高的值可能会提高质量。
 
virtual int getPatchSize () const =0
 用于匹配的图像块大小(以像素为单位)。通常,默认的8x8块在大多数情况下都足够好用。
 
virtual int getPatchStride () const =0
 相邻块之间的步幅。必须小于块大小。值越低对应更高的光流质量。
 
virtual bool getUseMeanNormalization () const =0
 计算块距离时是否使用块的均值归一化。默认情况下启用,因为它通常能显著提高质量,因为对光照变化的鲁棒性增强。如果您确定序列不包含任何光照变化,请关闭它。
 
virtual bool getUseSpatialPropagation () const =0
 是否使用良好光流向量的空间传播。此选项默认开启,因为它通常平均效果更好,有时可以帮助从DIS光流算法采用的粗到细方案引入的重大错误中恢复。然而,关闭此选项可以使输出光流场更平滑一些。
 
virtual float getVariationalRefinementAlpha () const =0
 平滑项的权重。
 
virtual float getVariationalRefinementDelta () const =0
 颜色恒定项的权重。
 
virtual float getVariationalRefinementEpsilon () const =0
 鲁棒惩罚项的范数值偏移。
 
virtual float getVariationalRefinementGamma () const =0
 梯度恒定项的权重。
 
virtual int getVariationalRefinementIterations () const =0
 每个尺度的变分细化不动点迭代次数。设置为零以完全禁用变分细化。更高的值通常会产生更平滑和高质量的光流。
 
virtual void setFinestScale (int val)=0
 计算光流的高斯金字塔最精细级别(零级别对应于原始图像分辨率)。最终光流通过双线性上采样获得。
 
virtual void setGradientDescentIterations (int val)=0
 块逆搜索阶段中梯度下降迭代的最大次数。在某些情况下,更高的值可能会提高质量。
 
virtual void setPatchSize (int val)=0
 用于匹配的图像块大小(以像素为单位)。通常,默认的8x8块在大多数情况下都足够好用。
 
virtual void setPatchStride (int val)=0
 相邻块之间的步幅。必须小于块大小。值越低对应更高的光流质量。
 
virtual void setUseMeanNormalization (bool val)=0
 计算块距离时是否使用块的均值归一化。默认情况下启用,因为它通常能显著提高质量,因为对光照变化的鲁棒性增强。如果您确定序列不包含任何光照变化,请关闭它。
 
virtual void setUseSpatialPropagation (bool val)=0
 是否使用良好光流向量的空间传播。此选项默认开启,因为它通常平均效果更好,有时可以帮助从DIS光流算法采用的粗到细方案引入的重大错误中恢复。然而,关闭此选项可以使输出光流场更平滑一些。
 
virtual void setVariationalRefinementAlpha (float val)=0
 平滑项的权重。
 
virtual void setVariationalRefinementDelta (float val)=0
 颜色恒定项的权重。
 
virtual void setVariationalRefinementEpsilon (float val)=0
 鲁棒惩罚项的范数值偏移。
 
virtual void setVariationalRefinementGamma (float val)=0
 梯度恒定项的权重。
 
virtual void setVariationalRefinementIterations (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
 如果 Algorithm 为空(例如,在最开始或读取不成功后),则返回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< DISOpticalFlowcreate (int preset=DISOpticalFlow::PRESET_FAST)
 创建 DISOpticalFlow 的实例。
 
- 继承自 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
 

详细描述

DIS 光流算法。

此类实现了密集逆搜索(Dense Inverse Search,DIS)光流算法。有关该算法的更多详细信息,请参见 [153]。包含三个预设,参数预选,可在速度和质量之间提供合理的权衡。然而,即使最慢的预设也相对较快,如果您需要更好的质量且不关心速度,请使用DeepFlow。

与论文中描述的算法相比,此实现包含几个附加功能,包括光流向量的空间传播(getUseSpatialPropagation),以及利用传递给 calc 的初始光流近似的选项(如果传递前一帧的光流场,这本质上是时间传播)。

成员枚举文档

◆ 匿名枚举

匿名枚举
枚举器
PRESET_ULTRAFAST 
PRESET_FAST 
PRESET_MEDIUM 

成员函数文档

◆ create()

static Ptr< DISOpticalFlow > cv::DISOpticalFlow::create ( int preset = DISOpticalFlow::PRESET_FAST)
static
Python
cv.DISOpticalFlow.create([, preset]) -> retval
cv.DISOpticalFlow_create([, preset]) -> retval

创建 DISOpticalFlow 的实例。

参数
presetPRESET_ULTRAFAST、PRESET_FAST 和 PRESET_MEDIUM 之一

◆ getFinestScale()

virtual int cv::DISOpticalFlow::getFinestScale ( ) const
纯虚函数
Python
cv.DISOpticalFlow.getFinestScale() -> retval

计算光流的高斯金字塔最精细级别(零级别对应于原始图像分辨率)。最终光流通过双线性上采样获得。

另请参见
setFinestScale

◆ getGradientDescentIterations()

virtual int cv::DISOpticalFlow::getGradientDescentIterations ( ) const
纯虚函数
Python
cv.DISOpticalFlow.getGradientDescentIterations() -> retval

块逆搜索阶段中梯度下降迭代的最大次数。在某些情况下,更高的值可能会提高质量。

另请参见
setGradientDescentIterations

◆ getPatchSize()

virtual int cv::DISOpticalFlow::getPatchSize ( ) const
纯虚函数
Python
cv.DISOpticalFlow.getPatchSize() -> retval

用于匹配的图像块大小(以像素为单位)。通常,默认的8x8块在大多数情况下都足够好用。

另请参见
setPatchSize

◆ getPatchStride()

virtual int cv::DISOpticalFlow::getPatchStride ( ) const
纯虚函数
Python
cv.DISOpticalFlow.getPatchStride() -> retval

相邻块之间的步幅。必须小于块大小。值越低对应更高的光流质量。

另请参见
setPatchStride

◆ getUseMeanNormalization()

virtual bool cv::DISOpticalFlow::getUseMeanNormalization ( ) const
纯虚函数
Python
cv.DISOpticalFlow.getUseMeanNormalization() -> retval

计算块距离时是否使用块的均值归一化。默认情况下启用,因为它通常能显著提高质量,因为对光照变化的鲁棒性增强。如果您确定序列不包含任何光照变化,请关闭它。

另请参见
setUseMeanNormalization

◆ getUseSpatialPropagation()

virtual bool cv::DISOpticalFlow::getUseSpatialPropagation ( ) const
纯虚函数
Python
cv.DISOpticalFlow.getUseSpatialPropagation() -> retval

是否使用良好光流向量的空间传播。此选项默认开启,因为它通常平均效果更好,有时可以帮助从DIS光流算法采用的粗到细方案引入的重大错误中恢复。然而,关闭此选项可以使输出光流场更平滑一些。

另请参见
setUseSpatialPropagation

◆ getVariationalRefinementAlpha()

virtual float cv::DISOpticalFlow::getVariationalRefinementAlpha ( ) const
纯虚函数
Python
cv.DISOpticalFlow.getVariationalRefinementAlpha() -> retval

平滑项的权重。

另请参见
setVariationalRefinementAlpha

◆ getVariationalRefinementDelta()

virtual float cv::DISOpticalFlow::getVariationalRefinementDelta ( ) const
纯虚函数
Python
cv.DISOpticalFlow.getVariationalRefinementDelta() -> retval

颜色恒定项的权重。

另请参见
setVariationalRefinementDelta

◆ getVariationalRefinementEpsilon()

virtual float cv::DISOpticalFlow::getVariationalRefinementEpsilon ( ) const
纯虚函数
Python
cv.DISOpticalFlow.getVariationalRefinementEpsilon() -> retval

鲁棒惩罚项的范数值偏移。

另请参见
setVariationalRefinementEpsilon

◆ getVariationalRefinementGamma()

virtual float cv::DISOpticalFlow::getVariationalRefinementGamma ( ) const
纯虚函数
Python
cv.DISOpticalFlow.getVariationalRefinementGamma() -> retval

梯度恒定项的权重。

另请参见
setVariationalRefinementGamma

◆ getVariationalRefinementIterations()

virtual int cv::DISOpticalFlow::getVariationalRefinementIterations ( ) const
纯虚函数
Python
cv.DISOpticalFlow.getVariationalRefinementIterations() -> retval

每个尺度的变分细化不动点迭代次数。设置为零以完全禁用变分细化。更高的值通常会产生更平滑和高质量的光流。

另请参见
setGradientDescentIterations

◆ setFinestScale()

virtual void cv::DISOpticalFlow::setFinestScale ( int val)
纯虚函数
Python
cv.DISOpticalFlow.setFinestScale(val) ->

计算光流的高斯金字塔最精细级别(零级别对应于原始图像分辨率)。最终光流通过双线性上采样获得。

另请参见
getFinestScale

◆ setGradientDescentIterations()

virtual void cv::DISOpticalFlow::setGradientDescentIterations ( int val)
纯虚函数
Python
cv.DISOpticalFlow.setGradientDescentIterations(val) ->

块逆搜索阶段中梯度下降迭代的最大次数。在某些情况下,更高的值可能会提高质量。

另请参见
getGradientDescentIterations

◆ setPatchSize()

virtual void cv::DISOpticalFlow::setPatchSize ( int val)
纯虚函数
Python
cv.DISOpticalFlow.setPatchSize(val) ->

用于匹配的图像块大小(以像素为单位)。通常,默认的8x8块在大多数情况下都足够好用。

另请参见
getPatchSize

◆ setPatchStride()

virtual void cv::DISOpticalFlow::setPatchStride ( int val)
纯虚函数
Python
cv.DISOpticalFlow.setPatchStride(val) ->

相邻块之间的步幅。必须小于块大小。值越低对应更高的光流质量。

另请参见
getPatchStride

◆ setUseMeanNormalization()

virtual void cv::DISOpticalFlow::setUseMeanNormalization ( bool val)
纯虚函数
Python
cv.DISOpticalFlow.setUseMeanNormalization(val) ->

计算块距离时是否使用块的均值归一化。默认情况下启用,因为它通常能显著提高质量,因为对光照变化的鲁棒性增强。如果您确定序列不包含任何光照变化,请关闭它。

另请参见
getUseMeanNormalization

◆ setUseSpatialPropagation()

virtual void cv::DISOpticalFlow::setUseSpatialPropagation ( bool val)
纯虚函数
Python
cv.DISOpticalFlow.setUseSpatialPropagation(val) ->

是否使用良好光流向量的空间传播。此选项默认开启,因为它通常平均效果更好,有时可以帮助从DIS光流算法采用的粗到细方案引入的重大错误中恢复。然而,关闭此选项可以使输出光流场更平滑一些。

另请参见
getUseSpatialPropagation

◆ setVariationalRefinementAlpha()

virtual void cv::DISOpticalFlow::setVariationalRefinementAlpha ( float val)
纯虚函数
Python
cv.DISOpticalFlow.setVariationalRefinementAlpha(val) ->

平滑项的权重。

另请参见
getVariationalRefinementAlpha

◆ setVariationalRefinementDelta()

virtual void cv::DISOpticalFlow::setVariationalRefinementDelta ( float val)
纯虚函数
Python
cv.DISOpticalFlow.setVariationalRefinementDelta(val) ->

颜色恒定项的权重。

另请参见
getVariationalRefinementDelta

◆ setVariationalRefinementEpsilon()

virtual void cv::DISOpticalFlow::setVariationalRefinementEpsilon ( float val)
纯虚函数
Python
cv.DISOpticalFlow.setVariationalRefinementEpsilon(val) ->

鲁棒惩罚项的范数值偏移。

另请参见
getVariationalRefinementEpsilon

◆ setVariationalRefinementGamma()

virtual void cv::DISOpticalFlow::setVariationalRefinementGamma ( float val)
纯虚函数
Python
cv.DISOpticalFlow.setVariationalRefinementGamma(val) ->

梯度恒定项的权重。

另请参见
getVariationalRefinementGamma

◆ setVariationalRefinementIterations()

virtual void cv::DISOpticalFlow::setVariationalRefinementIterations ( int val)
纯虚函数
Python
cv.DISOpticalFlow.setVariationalRefinementIterations(val) ->

块逆搜索阶段中梯度下降迭代的最大次数。在某些情况下,更高的值可能会提高质量。

另请参见
getGradientDescentIterations

此类的文档由以下文件生成