Autonomous Space Robotics Lab

Speeded Up SURF

UTIAS ASRL

asrl::GpuSurfOctave Class Reference

A class that reserves memory on the GPU for processing the interest point operator. More...

#include <GpuSurfOctave.hpp>

List of all members.

Public Member Functions

 GpuSurfOctave ()
 GpuSurfOctave (int img_width, int img_height, float l1, float l2, float l3, float l4, float edge_scale, float base_scale, int octave, int baseStep, int nIntervals)
void init (int img_width, int img_height, float l1, float l2, float l3, float l4, float edge_scale, float base_scale, int octave, int baseStep, int nIntervals)
 operator SurfOctaveParameters ()
float mask_width ()
float mask_height ()
bool valid ()
int border ()
int height ()
int width ()
int intervals ()
int step ()
const float * scales ()
int stride ()

Private Attributes

float m_mask_width
 Dxx/Dyy mask half-width.
float m_mask_height
 Dxx/Dyy mask half-height.
float m_l1
 Filter mask parameter l1.
float m_l2
 Filter mask parameter l2.
float m_l3
 Filter mask parameter l3.
float m_l4
 Filter mask parameter l4.
float m_edge_scale
 Relative filter response weighting used as: response = Dxx*Dyy - edge_scale*Dxy*Dxy.
bool m_valid
 Flag for whether or not a valid Hessian buffer can be created.
int m_border
 Size of the border to ensure filter lookups do not exceed the image boundaries.
int m_width
 Hessian buffer width.
int m_height
 Hessian buffer height.
int m_intervals
 Number of intervals in the octave.
int m_step
 Step size (in pixels).
float m_scales [ASRL_SURF_MAX_INTERVALS]
 The Hessian buffers for both the GPU and CPU.

Detailed Description

A class that reserves memory on the GPU for processing the interest point operator.

This class sets up the memory and computes the parameters for each octave for the Fast Hessian computation. Custom box filter dimensions can be specified using the l1-l4 mask parameters, which are utilized as illustrated in the following diagram.

mask_parameters.png

Dxx/Dyy and Dxy filter mask parameters

Definition at line 59 of file GpuSurfOctave.hpp.


Constructor & Destructor Documentation

asrl::GpuSurfOctave::GpuSurfOctave (  ) 

The default constructor. This is included so the octave can be stored in a standard library container.

Definition at line 35 of file GpuSurfOctave.cpp.

asrl::GpuSurfOctave::GpuSurfOctave ( int  img_width,
int  img_height,
float  l1,
float  l2,
float  l3,
float  l4,
float  edge_scale,
float  base_scale,
int  octave,
int  baseStep,
int  nIntervals 
)

The constructor with input parameters.

Parameters:
img_width The image width in pixels
img_height The image height in pixels
l1 Filter mask parameter l1
l2 Filter mask parameter l2
l3 Filter mask parameter l3
l4 Filter mask parameter l4
edge_scale Relative filter response weighting used as: response = Dxx*Dyy - edge_scale*Dxy*Dxy
base_scale Base scale for the first octave
octave Octave number (zero-indexed)
baseStep Initial step size (for the first octave) in pixels
nIntervals Number of intervals in the octave

Definition at line 39 of file GpuSurfOctave.cpp.


Member Function Documentation

int asrl::GpuSurfOctave::border (  )  [inline]
Returns:
The size of the border (in pixels) such that no evaluated filter exceeds the bounds of the image.

Definition at line 111 of file GpuSurfOctave.hpp.

int asrl::GpuSurfOctave::height (  )  [inline]
Returns:
The height of the Hessian buffer.

Definition at line 116 of file GpuSurfOctave.hpp.

void asrl::GpuSurfOctave::init ( int  img_width,
int  img_height,
float  l1,
float  l2,
float  l3,
float  l4,
float  edge_scale,
float  base_scale,
int  octave,
int  baseStep,
int  nIntervals 
)

Initialization of the components of each GpuSurfOctave object.

Definition at line 44 of file GpuSurfOctave.cpp.

int asrl::GpuSurfOctave::intervals (  )  [inline]
Returns:
The number of intervals in the octave.

Definition at line 126 of file GpuSurfOctave.hpp.

float asrl::GpuSurfOctave::mask_height (  )  [inline]
Returns:
The half-height of the Dxx/Dyy mask.

Definition at line 101 of file GpuSurfOctave.hpp.

float asrl::GpuSurfOctave::mask_width (  )  [inline]
Returns:
The half-width of the Dxx/Dyy mask.

Definition at line 96 of file GpuSurfOctave.hpp.

asrl::GpuSurfOctave::operator SurfOctaveParameters (  ) 
Returns:
The parameters for the octave.

Definition at line 83 of file GpuSurfOctave.cpp.

const float* asrl::GpuSurfOctave::scales (  )  [inline]
Returns:
The scales in the octave.

Definition at line 136 of file GpuSurfOctave.hpp.

int asrl::GpuSurfOctave::step (  )  [inline]
Returns:
The step size (in pixels) for the octave.

Definition at line 131 of file GpuSurfOctave.hpp.

int asrl::GpuSurfOctave::stride (  )  [inline]
Returns:
The 128-byte-divisible stride for a row of the octave

Definition at line 141 of file GpuSurfOctave.hpp.

bool asrl::GpuSurfOctave::valid (  )  [inline]
Returns:
A flag specifying whether or not we have a valid size for the Hessian buffer.

Definition at line 106 of file GpuSurfOctave.hpp.

int asrl::GpuSurfOctave::width (  )  [inline]
Returns:
The width of the Hessian buffer.

Definition at line 121 of file GpuSurfOctave.hpp.


Member Data Documentation

Size of the border to ensure filter lookups do not exceed the image boundaries.

Definition at line 168 of file GpuSurfOctave.hpp.

Relative filter response weighting used as: response = Dxx*Dyy - edge_scale*Dxy*Dxy.

Definition at line 164 of file GpuSurfOctave.hpp.

Hessian buffer height.

Definition at line 172 of file GpuSurfOctave.hpp.

Number of intervals in the octave.

Definition at line 174 of file GpuSurfOctave.hpp.

float asrl::GpuSurfOctave::m_l1 [private]

Filter mask parameter l1.

Definition at line 156 of file GpuSurfOctave.hpp.

float asrl::GpuSurfOctave::m_l2 [private]

Filter mask parameter l2.

Definition at line 158 of file GpuSurfOctave.hpp.

float asrl::GpuSurfOctave::m_l3 [private]

Filter mask parameter l3.

Definition at line 160 of file GpuSurfOctave.hpp.

float asrl::GpuSurfOctave::m_l4 [private]

Filter mask parameter l4.

Definition at line 162 of file GpuSurfOctave.hpp.

Dxx/Dyy mask half-height.

Definition at line 154 of file GpuSurfOctave.hpp.

Dxx/Dyy mask half-width.

Definition at line 152 of file GpuSurfOctave.hpp.

float asrl::GpuSurfOctave::m_scales[ASRL_SURF_MAX_INTERVALS] [private]

The Hessian buffers for both the GPU and CPU.

The scales in the octave

Definition at line 180 of file GpuSurfOctave.hpp.

Step size (in pixels).

Definition at line 176 of file GpuSurfOctave.hpp.

Flag for whether or not a valid Hessian buffer can be created.

Definition at line 166 of file GpuSurfOctave.hpp.

Hessian buffer width.

Definition at line 170 of file GpuSurfOctave.hpp.


The documentation for this class was generated from the following files:

Generated on Fri Apr 30 20:06:20 2010 for gpusurf by doxygen 1.6.2