类 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 注意:
    • 在 opencv_source_code/samples/gpu/surf_keypoint_matcher.cpp 中可以找到在 GPU 上使用 SURF 关键点匹配器的示例
    • 构造函数详细信息

      • 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