类 DISOpticalFlow


  • public class DISOpticalFlow
    extends DenseOpticalFlow
    DIS 光流算法。此类实现了密集逆搜索 (DIS) 光流算法。有关该算法的更多详细信息,请参见 CITE: Kroeger2016 。包括三个预设,带有预选参数,以在速度和质量之间提供合理的折衷。然而,即使是最慢的预设仍然相对较快,如果您需要更好的质量并且不关心速度,请使用 DeepFlow。与论文中描述的算法相比,此实现包括几个额外的功能,包括光流矢量的空间传播 (REF: getUseSpatialPropagation),以及利用传递给 REF: calc 的初始流量近似值 (实际上是时间传播,如果传递了前一帧的流量场) 的选项。
    • 字段详细信息

      • PRESET_ULTRAFAST

        public static final int PRESET_ULTRAFAST
        参见
        常量字段值
      • PRESET_MEDIUM

        public static final int PRESET_MEDIUM
        参见
        常量字段值
    • 构造函数详细信息

      • DISOpticalFlow

        protected DISOpticalFlow​(long addr)
    • 方法详细信息

      • __fromPtr__

        public static DISOpticalFlow __fromPtr__​(long addr)
      • getFinestScale

        public int getFinestScale()
        计算流量的高斯金字塔的最精细级别(零级别对应于原始图像分辨率)。最终流量通过双线性上采样获得。 SEE: setFinestScale
        返回
        自动生成
      • setFinestScale

        public void setFinestScale​(int val)
        getFinestScale SEE: getFinestScale
        参数
        val - 自动生成
      • getPatchSize

        public int getPatchSize()
        用于匹配的图像补丁的大小(以像素为单位)。通常,默认的 8x8 补丁在大多数情况下都足够好。 SEE: setPatchSize
        返回
        自动生成
      • setPatchSize

        public void setPatchSize​(int val)
        getPatchSize SEE: getPatchSize
        参数
        val - 自动生成
      • getPatchStride

        public int getPatchStride()
        相邻补丁之间的步幅。必须小于补丁大小。较低的值对应于较高的流量质量。 SEE: setPatchStride
        返回
        自动生成
      • setPatchStride

        public void setPatchStride​(int val)
        getPatchStride SEE: getPatchStride
        参数
        val - 自动生成
      • getGradientDescentIterations

        public int getGradientDescentIterations()
        补丁逆搜索阶段中梯度下降的最大迭代次数。在某些情况下,更高的值可能会提高质量。 SEE: setGradientDescentIterations
        返回
        自动生成
      • setGradientDescentIterations

        public void setGradientDescentIterations​(int val)
        getGradientDescentIterations SEE: getGradientDescentIterations
        参数
        val - 自动生成
      • getVariationalRefinementIterations

        public int getVariationalRefinementIterations()
        每个尺度的变分细化的定点迭代次数。设置为零以完全禁用变分细化。更高的值通常会导致更平滑和高质量的流量。 SEE: setGradientDescentIterations
        返回
        自动生成
      • setVariationalRefinementIterations

        public void setVariationalRefinementIterations​(int val)
        getGradientDescentIterations SEE: getGradientDescentIterations
        参数
        val - 自动生成
      • getVariationalRefinementAlpha

        public float getVariationalRefinementAlpha()
        平滑项的权重 SEE: setVariationalRefinementAlpha
        返回
        自动生成
      • setVariationalRefinementAlpha

        public void setVariationalRefinementAlpha​(float val)
        getVariationalRefinementAlpha SEE: getVariationalRefinementAlpha
        参数
        val - 自动生成
      • getVariationalRefinementDelta

        public float getVariationalRefinementDelta()
        颜色恒定性项的权重 SEE: setVariationalRefinementDelta
        返回
        自动生成
      • setVariationalRefinementDelta

        public void setVariationalRefinementDelta​(float val)
        getVariationalRefinementDelta SEE: getVariationalRefinementDelta
        参数
        val - 自动生成
      • getVariationalRefinementGamma

        public float getVariationalRefinementGamma()
        梯度恒定性项的权重 SEE: setVariationalRefinementGamma
        返回
        自动生成
      • setVariationalRefinementGamma

        public void setVariationalRefinementGamma​(float val)
        getVariationalRefinementGamma SEE: getVariationalRefinementGamma
        参数
        val - 自动生成
      • getVariationalRefinementEpsilon

        public float getVariationalRefinementEpsilon()
        鲁棒惩罚器的范数值偏移 SEE: setVariationalRefinementEpsilon
        返回
        自动生成
      • setVariationalRefinementEpsilon

        public void setVariationalRefinementEpsilon​(float val)
        getVariationalRefinementEpsilon SEE: getVariationalRefinementEpsilon
        参数
        val - 自动生成
      • getUseMeanNormalization

        public boolean getUseMeanNormalization()
        在计算补丁距离时是否使用补丁的均值归一化。默认情况下启用它,因为它通常会因为提高了对光照变化的鲁棒性而显着提高质量。如果您确定您的序列不包含任何光照变化,请将其关闭。 SEE: setUseMeanNormalization
        返回
        自动生成
      • setUseMeanNormalization

        public void setUseMeanNormalization​(boolean val)
        getUseMeanNormalization SEE: getUseMeanNormalization
        参数
        val - 自动生成
      • getUseSpatialPropagation

        public boolean getUseSpatialPropagation()
        是否使用良好光流矢量的空间传播。默认情况下启用此选项,因为它通常平均效果更好,有时可以帮助从 DIS 光流算法采用的由粗到精方案引入的重大错误中恢复。然而,关闭此选项可以使输出流量场更平滑。 SEE: setUseSpatialPropagation
        返回
        自动生成
      • setUseSpatialPropagation

        public void setUseSpatialPropagation​(boolean val)
        getUseSpatialPropagation SEE: getUseSpatialPropagation
        参数
        val - 自动生成
      • create

        public static DISOpticalFlow create​(int preset)
        创建 DISOpticalFlow 的实例
        参数
        preset - PRESET_ULTRAFAST、PRESET_FAST 和 PRESET_MEDIUM 之一
        返回
        自动生成
      • create

        public static DISOpticalFlow create()
        创建 DISOpticalFlow 的实例
        返回
        自动生成
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        重写
        finalize 在类中 DenseOpticalFlow
        抛出
        java.lang.Throwable