Package org.opencv.xfeatures2d

## Class SURF_CUDA

- java.lang.Object
- - org.opencv.xfeatures2d.SURF_CUDA

-     public class SURF_CUDA
      extends java.lang.Object

  Class used for extracting Speeded Up Robust Features (SURF) from an image. : The class SURF_CUDA implements Speeded Up Robust Features descriptor. There is a fast multi-scale Hessian keypoint detector that can be used to find the keypoints (which is the default option). But the descriptors can also be computed for the user-specified keypoints. Only 8-bit grayscale images are supported. The class SURF_CUDA can store results in the GPU and CPU memory. It provides functions to convert results between CPU and GPU version ( uploadKeypoints, downloadKeypoints, downloadDescriptors ). The format of CPU results is the same as SURF results. GPU results are stored in GpuMat. The keypoints matrix is \(\texttt{nFeatures} \times 7\) matrix with the CV_32FC1 type.
  - keypoints.ptr<float>(X_ROW)[i] contains x coordinate of the i-th feature.
  - keypoints.ptr<float>(Y_ROW)[i] contains y coordinate of the i-th feature.
  - keypoints.ptr<float>(LAPLACIAN_ROW)[i] contains the laplacian sign of the i-th feature.
  - keypoints.ptr<float>(OCTAVE_ROW)[i] contains the octave of the i-th feature.
  - keypoints.ptr<float>(SIZE_ROW)[i] contains the size of the i-th feature.
  - keypoints.ptr<float>(ANGLE_ROW)[i] contain orientation of the i-th feature.
  - keypoints.ptr<float>(HESSIAN_ROW)[i] contains the response of the i-th feature.
  The descriptors matrix is \(\texttt{nFeatures} \times \texttt{descriptorSize}\) matrix with the CV_32FC1 type. The class SURF_CUDA uses some buffers and provides access to it. All buffers can be safely released between function calls. SEE: SURF Note:
  - An example for using the SURF keypoint matcher on GPU can be found at opencv_source_code/samples/gpu/surf_keypoint_matcher.cpp

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `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` |

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `SURF_CUDA​(long addr)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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()` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### nativeObj

          protected final long nativeObj

    - #### X_ROW

          public static final int X_ROW

      See Also:
        Constant Field Values

    - #### Y_ROW

          public static final int Y_ROW

      See Also:
        Constant Field Values

    - #### LAPLACIAN_ROW

          public static final int LAPLACIAN_ROW

      See Also:
        Constant Field Values

    - #### OCTAVE_ROW

          public static final int OCTAVE_ROW

      See Also:
        Constant Field Values

    - #### SIZE_ROW

          public static final int SIZE_ROW

      See Also:
        Constant Field Values

    - #### ANGLE_ROW

          public static final int ANGLE_ROW

      See Also:
        Constant Field Values

    - #### HESSIAN_ROW

          public static final int HESSIAN_ROW

      See Also:
        Constant Field Values

    - #### ROWS_COUNT

          public static final int ROWS_COUNT

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SURF_CUDA

          protected SURF_CUDA​(long addr)

  - ### Method Detail

    - #### 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)

      Parameters:
        `_hessianThreshold` - Threshold for hessian keypoint detector used in SURF.
        `_nOctaves` - Number of pyramid octaves the keypoint detector will use.
        `_nOctaveLayers` - Number of octave layers within each octave.
        `_extended` - Extended descriptor flag (true - use extended 128-element descriptors; false - use 64-element descriptors).
        `_keypointsRatio` - Limits a maximum number of features
        `_upright` - Up-right or rotated features flag (true - do not compute orientation of features; false - compute orientation).
      Returns:
        automatically generated

    - #### create

          public static SURF_CUDA create​(double _hessianThreshold,
                                         int _nOctaves,
                                         int _nOctaveLayers,
                                         boolean _extended,
                                         float _keypointsRatio)

      Parameters:
        `_hessianThreshold` - Threshold for hessian keypoint detector used in SURF.
        `_nOctaves` - Number of pyramid octaves the keypoint detector will use.
        `_nOctaveLayers` - Number of octave layers within each octave.
        `_extended` - Extended descriptor flag (true - use extended 128-element descriptors; false - use 64-element descriptors).
        `_keypointsRatio` - Limits a maximum number of features false - compute orientation).
      Returns:
        automatically generated

    - #### create

          public static SURF_CUDA create​(double _hessianThreshold,
                                         int _nOctaves,
                                         int _nOctaveLayers,
                                         boolean _extended)

      Parameters:
        `_hessianThreshold` - Threshold for hessian keypoint detector used in SURF.
        `_nOctaves` - Number of pyramid octaves the keypoint detector will use.
        `_nOctaveLayers` - Number of octave layers within each octave.
        `_extended` - Extended descriptor flag (true - use extended 128-element descriptors; false - use 64-element descriptors). false - compute orientation).
      Returns:
        automatically generated

    - #### create

          public static SURF_CUDA create​(double _hessianThreshold,
                                         int _nOctaves,
                                         int _nOctaveLayers)

      Parameters:
        `_hessianThreshold` - Threshold for hessian keypoint detector used in SURF.
        `_nOctaves` - Number of pyramid octaves the keypoint detector will use.
        `_nOctaveLayers` - Number of octave layers within each octave. 64-element descriptors). false - compute orientation).
      Returns:
        automatically generated

    - #### create

          public static SURF_CUDA create​(double _hessianThreshold,
                                         int _nOctaves)

      Parameters:
        `_hessianThreshold` - Threshold for hessian keypoint detector used in SURF.
        `_nOctaves` - Number of pyramid octaves the keypoint detector will use. 64-element descriptors). false - compute orientation).
      Returns:
        automatically generated

    - #### create

          public static SURF_CUDA create​(double _hessianThreshold)

      Parameters:
        `_hessianThreshold` - Threshold for hessian keypoint detector used in SURF. 64-element descriptors). false - compute orientation).
      Returns:
        automatically generated

    - #### 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

      Overrides:
        `finalize` in class `java.lang.Object`
      Throws:
        `java.lang.Throwable`