类 SURF_CUDA
- java.lang.Object
-
- org.opencv.xfeatures2d.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 个特征的响应。
- 在 GPU 上使用 SURF 关键点匹配器的示例可以在 opencv_source_code/samples/gpu/surf_keypoint_matcher.cpp 中找到。
-
-
字段摘要
字段 修饰符和类型 字段 描述 static int
ANGLE_ROW
static int
HESSIAN_ROW
static int
LAPLACIAN_ROW
protected long
nativeObj
static int
OCTAVE_ROW
static int
ROWS_COUNT
static int
SIZE_ROW
static int
X_ROW
static int
Y_ROW
-
构造函数摘要
构造函数 修饰符 构造函数 描述 protected
SURF_CUDA(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static SURF_CUDA
__fromPtr__(long addr)
static SURF_CUDA
create(double _hessianThreshold)
static SURF_CUDA
create(double _hessianThreshold, int _nOctaves)
static SURF_CUDA
create(double _hessianThreshold, int _nOctaves, int _nOctaveLayers)
static SURF_CUDA
create(double _hessianThreshold, int _nOctaves, int _nOctaveLayers, boolean _extended)
static SURF_CUDA
create(double _hessianThreshold, int _nOctaves, int _nOctaveLayers, boolean _extended, float _keypointsRatio)
static SURF_CUDA
create(double _hessianThreshold, int _nOctaves, int _nOctaveLayers, boolean _extended, float _keypointsRatio, boolean _upright)
int
defaultNorm()
int
descriptorSize()
protected void
finalize()
boolean
get_extended()
double
get_hessianThreshold()
float
get_keypointsRatio()
int
get_nOctaveLayers()
int
get_nOctaves()
boolean
get_upright()
long
getNativeObjAddr()
-
-
-
字段详情
-
nativeObj
protected final long nativeObj
-
X_ROW
public static final int X_ROW
- 另请参阅
- 常量字段值
-
Y_ROW
public static final int Y_ROW
- 另请参阅
- 常量字段值
-
LAPLACIAN_ROW
public static final int LAPLACIAN_ROW
- 另请参阅
- 常量字段值
-
OCTAVE_ROW
public static final int OCTAVE_ROW
- 另请参阅
- 常量字段值
-
SIZE_ROW
public static final int SIZE_ROW
- 另请参阅
- 常量字段值
-
ANGLE_ROW
public static final int ANGLE_ROW
- 另请参阅
- 常量字段值
-
HESSIAN_ROW
public static final int HESSIAN_ROW
- 另请参阅
- 常量字段值
-
ROWS_COUNT
public static final int ROWS_COUNT
- 另请参阅
- 常量字段值
-
-
方法详情
-
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
-
-