类 SURF_CUDA


  • public class SURF_CUDA
    extends java.lang.Object
    用于从图像中提取加速鲁棒特征 (SURF) 的类。此 SURF_CUDA 类实现加速鲁棒特征描述符。它包含一个快速的多分辨率 Hessian 关键点检测器,可用于查找关键点(这是默认选项)。但是,也可以针对用户指定的关键点计算描述符。仅支持 8 位灰度图像。SURF_CUDA 类可以将结果存储在 GPU 和 CPU 内存中。它提供在 CPU 和 GPU 版本之间转换结果的函数(uploadKeypoints、downloadKeypoints、downloadDescriptors)。CPU 结果的格式与 SURF 结果相同。GPU 结果存储在 GpuMat 中。关键点矩阵是 \( \texttt{nFeatures} \times 7 \) 矩阵,类型为 CV_32FC1。
    • keypoints.ptr<float>(X_ROW)[i] 包含第 i 个特征的 x 坐标。
    • keypoints.ptr<float>(Y_ROW)[i] 包含第 i 个特征的 y 坐标。
    • keypoints.ptr<float>(LAPLACIAN_ROW)[i] 包含第 i 个特征的拉普拉斯符号。
    • keypoints.ptr<float>(OCTAVE_ROW)[i] 包含第 i 个特征的层级。
    • keypoints.ptr<float>(SIZE_ROW)[i] 包含第 i 个特征的大小。
    • keypoints.ptr<float>(ANGLE_ROW)[i] 包含第 i 个特征的方向。
    • keypoints.ptr<float>(HESSIAN_ROW)[i] 包含第 i 个特征的响应。
    描述符矩阵是 \( \texttt{nFeatures} \times \texttt{descriptorSize} \) 矩阵,类型为 CV_32FC1。SURF_CUDA 类使用一些缓冲区并提供对其的访问。所有缓冲区都可以在函数调用之间安全释放。参见:SURF **注意:**
    • 在 GPU 上使用 SURF 关键点匹配器的示例可以在 opencv_source_code/samples/gpu/surf_keypoint_matcher.cpp 中找到。
    • 构造函数详情

      • SURF_CUDA

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

      • getNativeObjAddr

        public long getNativeObjAddr()
      • __fromPtr__

        public static SURF_CUDA __fromPtr__​(long addr)
      • create

        public static SURF_CUDA create​(double _hessianThreshold,
                                       int _nOctaves,
                                       int _nOctaveLayers,
                                       boolean _extended,
                                       float _keypointsRatio,
                                       boolean _upright)
        参数
        _hessianThreshold - SURF 中使用的 Hessian 关键点检测器的阈值。
        _nOctaves - 关键点检测器将使用的金字塔层数。
        _nOctaveLayers - 每层金字塔中的层数。
        _extended - 扩展描述符标志(true - 使用扩展的 128 元素描述符;false - 使用 64 元素描述符)。
        _keypointsRatio - 限制最大特征数量
        _upright - 正向或旋转特征标志(true - 不计算特征方向;false - 计算方向)。
        返回
        自动生成
      • create

        public static SURF_CUDA create​(double _hessianThreshold,
                                       int _nOctaves,
                                       int _nOctaveLayers,
                                       boolean _extended,
                                       float _keypointsRatio)
        参数
        _hessianThreshold - SURF 中使用的 Hessian 关键点检测器的阈值。
        _nOctaves - 关键点检测器将使用的金字塔层数。
        _nOctaveLayers - 每层金字塔中的层数。
        _extended - 扩展描述符标志(true - 使用扩展的 128 元素描述符;false - 使用 64 元素描述符)。
        _keypointsRatio - 限制最大特征数量 false - 计算方向)。
        返回
        自动生成
      • create

        public static SURF_CUDA create​(double _hessianThreshold,
                                       int _nOctaves,
                                       int _nOctaveLayers,
                                       boolean _extended)
        参数
        _hessianThreshold - SURF 中使用的 Hessian 关键点检测器的阈值。
        _nOctaves - 关键点检测器将使用的金字塔层数。
        _nOctaveLayers - 每层金字塔中的层数。
        _extended - 扩展描述符标志(true - 使用扩展的 128 元素描述符;false - 使用 64 元素描述符)。false - 计算方向)。
        返回
        自动生成
      • create

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

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

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

        public int descriptorSize()
      • defaultNorm

        public int defaultNorm()
      • get_hessianThreshold

        public double get_hessianThreshold()
      • get_nOctaves

        public int get_nOctaves()
      • get_nOctaveLayers

        public int get_nOctaveLayers()
      • get_extended

        public boolean get_extended()
      • get_upright

        public boolean get_upright()
      • get_keypointsRatio

        public float get_keypointsRatio()
      • finalize

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