类 DISOpticalFlow


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

      • PRESET_ULTRAFAST

        public static final int PRESET_ULTRAFAST
        另请参见
        常量字段值
      • PRESET_FAST

        public static final int PRESET_FAST
        另请参见
        常量字段值
      • 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 光流算法采用的粗到细方案引入的重大错误。但是,禁用此选项可以使输出流场更平滑。参见: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