SURF 类


  • public class SURF
    extends Feature2D
    用于从图像中提取加速鲁棒特征 (Speeded Up Robust Features) 的类 CITE: Bay06。算法参数
    • 成员 int extended
      • 0 表示计算基本描述符(每个 64 个元素)。
      • 1 表示计算扩展描述符(每个 128 个元素)。
    • 成员 int upright
      • 0 表示检测器计算每个特征的方向。
      • 1 表示不计算方向(速度快得多)。例如,如果您匹配立体图像对中的图像或进行图像拼接,则匹配的特征可能具有非常相似的角度,您可以通过设置 upright=1 来加快特征提取速度。
    • 成员 double hessianThreshold 关键点检测器的阈值。只有 Hessian 值大于 hessianThreshold 的特征才会被检测器保留。因此,值越大,获得的关键点越少。根据图像对比度,一个好的默认值可能是 300 到 500。
    • 成员 int nOctaves 检测器使用的 Gaussian 金字塔层的数量。默认为 4。如果要获取非常大的特征,请使用较大的值。如果只需要小特征,请减小它。
    • 成员 int nOctaveLayers Gaussian 金字塔中每个层内的图像数量。默认为 2。
    注意
    • 使用 SURF 特征检测器的示例可以在 opencv_source_code/samples/cpp/generic_descriptor_match.cpp 中找到。
      • 另一个使用 SURF 特征检测器、提取器和匹配器的示例可以在 opencv_source_code/samples/cpp/matcher_simple.cpp 中找到。
    • 构造函数详情

      • SURF

        protected SURF​(long addr)
    • 方法详情

      • __fromPtr__

        public static SURF __fromPtr__​(long addr)
      • 创建

        public static SURF create​(double hessianThreshold,
                                  int nOctaves,
                                  int nOctaveLayers,
                                  boolean extended,
                                  boolean upright)
        参数
        hessianThreshold - SURF 中使用的 Hessian 关键点检测器的阈值。
        nOctaves - 关键点检测器将使用的金字塔层的数量。
        nOctaveLayers - 每层内的八度层数。
        extended - 扩展描述符标志 (true - 使用扩展的 128 元素描述符;false - 使用 64 元素描述符)。
        upright - 正向或旋转特征标志 (true - 不计算特征的方向;false - 计算方向)。
        返回值
        自动生成
      • 创建

        public static SURF create​(double hessianThreshold,
                                  int nOctaves,
                                  int nOctaveLayers,
                                  boolean extended)
        参数
        hessianThreshold - SURF 中使用的 Hessian 关键点检测器的阈值。
        nOctaves - 关键点检测器将使用的金字塔层的数量。
        nOctaveLayers - 每层内的八度层数。
        extended - 扩展描述符标志 (true - 使用扩展的 128 元素描述符;false - 使用 64 元素描述符)。false - 计算方向)。
        返回值
        自动生成
      • 创建

        public static SURF create​(double hessianThreshold,
                                  int nOctaves,
                                  int nOctaveLayers)
        参数
        hessianThreshold - SURF 中使用的 Hessian 关键点检测器的阈值。
        nOctaves - 关键点检测器将使用的金字塔层的数量。
        nOctaveLayers - 每层内的八度层数。64 元素描述符)。false - 计算方向)。
        返回值
        自动生成
      • 创建

        public static SURF create​(double hessianThreshold,
                                  int nOctaves)
        参数
        hessianThreshold - SURF 中使用的 Hessian 关键点检测器的阈值。
        nOctaves - 关键点检测器将使用的金字塔层的数量。64 元素描述符)。false - 计算方向)。
        返回值
        自动生成
      • 创建

        public static SURF create​(double hessianThreshold)
        参数
        hessianThreshold - SURF 中使用的 Hessian 关键点检测器的阈值。64 元素描述符)。false - 计算方向)。
        返回值
        自动生成
      • 创建

        public static SURF create()
        64 元素描述符)。false - 计算方向)。
        返回值
        自动生成
      • setHessianThreshold

        public void setHessianThreshold​(double hessianThreshold)
      • getHessianThreshold

        public double getHessianThreshold()
      • setNOctaves

        public void setNOctaves​(int nOctaves)
      • getNOctaves

        public int getNOctaves()
      • setNOctaveLayers

        public void setNOctaveLayers​(int nOctaveLayers)
      • getNOctaveLayers

        public int getNOctaveLayers()
      • setExtended

        public void setExtended​(boolean extended)
      • getExtended

        public boolean getExtended()
      • setUpright

        public void setUpright​(boolean upright)
      • getUpright

        public boolean getUpright()
      • getDefaultName

        public java.lang.String getDefaultName()
        从类复制的描述:Algorithm
        返回算法字符串标识符。将对象保存到文件或字符串时,此字符串用作顶级 xml/yml 节点标签。
        覆盖
        getDefaultName 在类 Feature2D
        返回值
        自动生成
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        覆盖
        finalize 在类 Feature2D
        抛出
        java.lang.Throwable