Documentation - C API
scalespace.h File Reference

Scale Space (Gaussian Scale Space) More...

#include "generic.h"
#include "imopv.h"
#include "mathop.h"

Data Structures

struct  VlScaleSpaceGeometry
 A set of parameters describing the scale space geometry. More...
struct  VlScaleSpace
 Gaussian scale space. More...

Functions

Create and destroy
VlScaleSpacevl_scalespace_new (vl_size width, vl_size height, vl_index numOctaves, vl_index firstOctave, vl_size octaveResolution, vl_index octaveFirstSubdivision, vl_index octaveLastSubdivision)
 Creates a new VlScaleSpace object.
VlScaleSpacevl_scalespace_new_with_geometry (VlScaleSpaceGeometry geom)
void vl_scalespace_delete (VlScaleSpace *self)
 Delete a VlScaleSpace object.
VlScaleSpacevl_scalespace_clone_structure (VlScaleSpace *src)
 Clone the object but do not copy the data.
VlScaleSpacevl_scalespace_clone (VlScaleSpace *src)
 Clone the scale space with all its data.
Process data
void vl_scalespace_put_image (VlScaleSpace *self, float const *image)
 Initialise Scale space with new image.
Retrieve data and parameters
VlScaleSpaceGeometry vl_scalespace_get_geometry (VlScaleSpace const *self)
 Get the geometry of the scale space.
VlScaleSpaceOctaveGeometry vl_scalespace_get_octave_geometry (VlScaleSpace const *self, vl_index o)
 Get the geometry of an octave of the scalespace.
float * vl_scalespace_get_level (VlScaleSpace const *self, vl_index o, vl_index s)
 Get the const data of a scale space level.
double vl_scalespace_get_level_sigma (VlScaleSpace const *self, vl_index o, vl_index s)

Detailed Description

Author:
Andrea Vedaldi
Karel Lenc
Michal Perdoch

Function Documentation

VlScaleSpace* vl_scalespace_clone ( VlScaleSpace self)

Performs deep copy of the scale space.

Parameters:
selfScale space which should be cloned.
VlScaleSpace* vl_scalespace_clone_structure ( VlScaleSpace self)
Parameters:
selfVlScaleSpace object instance.
Returns:
the object copy, or NULL.

The function can fail if the memory is insufficient to hold the object copy. In this case, the function returns NULL.

void vl_scalespace_delete ( VlScaleSpace self)
Parameters:
selfobject to delete.
See also:
vl_scalespace_new
VlScaleSpaceGeometry vl_scalespace_get_geometry ( VlScaleSpace const *  self)
Parameters:
object.
Returns:
the scale space geometry.
float* vl_scalespace_get_level ( VlScaleSpace const *  self,
vl_index  o,
vl_index  s 
)
Parameters:
selfobject.
ooctave index.
slevel index.
Returns:
pointer to the data for octave o, level s.

The octave index o must be in the range firstOctave to lastOctave and the scale index s must be in the range octaveFirstSubdivision to octaveLastSubdivision.

VlScaleSpaceOctaveGeometry vl_scalespace_get_octave_geometry ( VlScaleSpace const *  self,
vl_index  o 
)
Parameters:
object.
ooctave index.
Returns:
the geometry of the specified octave.
VlScaleSpace* vl_scalespace_new ( vl_size  width,
vl_size  height,
vl_index  numOctaves,
vl_index  firstOctave,
vl_size  octaveResolution,
vl_index  octaveFirstSubdivision,
vl_index  octaveLastSubdivision 
)
Parameters:
widthimage width.
heightimage height.
numOctavesnumber of octaves.
firstOctaveindex of the first octave.
numLevelsnumeber of levels per octave.
firstLevelindex of the first level.
lastLevelindex of the last level.
Returns:
the new scale space.

The function allocates and returns a new VlScaleSpace object of the specified geometry.

If numOctaves is a negative number, the number of octaves is selected to the maximum possible given the size of the image.

Parameters firstLevel and lastLevel allow to define additional levels on top or bottom of the scale-space although the scale-space would be calculated with parameters based on numLevels. This is for example used when we need to compute additional levels for local extrema localisation when e.g.:

numLevels = 3, firstLevel = -1, lastLevel = 3

would create scale space with 5 levels indexed as:

-1 0 1 2 3
See also:
vl_scalespace_delete().
void vl_scalespace_put_image ( VlScaleSpace self,
float const *  image 
)
Parameters:
selfVlScaleSpace object instance.
imageimage to process.

Compute the data of all the defined octaves and scales of the scale space self.