Scale Space - Definition. More...
#include "scalespace.h"#include "mathop.h"#include <assert.h>#include <stdlib.h>#include <string.h>#include <math.h>#include <stdio.h>Functions | |
| VlScaleSpaceGeometry | vl_scalespace_get_default_geometry (vl_size width, vl_size height) |
| Get the default geometry for a given image size. More... | |
| vl_bool | vl_scalespacegeometry_is_equal (VlScaleSpaceGeometry a, VlScaleSpaceGeometry b) |
| Check scale space geometries for equality. More... | |
| VlScaleSpaceGeometry | vl_scalespace_get_geometry (VlScaleSpace const *self) |
| Get the geometry of the scale space. More... | |
| VlScaleSpaceOctaveGeometry | vl_scalespace_get_octave_geometry (VlScaleSpace const *self, vl_index o) |
| Get the geometry of an octave of the scalespace. More... | |
| float * | vl_scalespace_get_level (VlScaleSpace *self, vl_index o, vl_index s) |
| Get the data of a scale space level. More... | |
| const float * | vl_scalespace_get_level_const (VlScaleSpace const *self, vl_index o, vl_index s) |
| Get the data of a scale space level (const) More... | |
| double | vl_scalespace_get_level_sigma (VlScaleSpace const *self, vl_index o, vl_index s) |
| Get the scale of a given octave and sublevel. More... | |
| static void | copy_and_upsample (float *destination, float const *source, vl_size width, vl_size height) |
| Upsample the rows and take the transpose. More... | |
| static void | copy_and_downsample (float *destination, float const *source, vl_size width, vl_size height, vl_size numOctaves) |
| Downsample. More... | |
| VlScaleSpace * | vl_scalespace_new (vl_size width, vl_size height) |
| Create a new scale space object. More... | |
| VlScaleSpace * | vl_scalespace_new_with_geometry (VlScaleSpaceGeometry geom) |
| Create a new scale space with the specified geometry. More... | |
| VlScaleSpace * | vl_scalespace_new_copy (VlScaleSpace *self) |
| Create a new copy of the object. More... | |
| VlScaleSpace * | vl_scalespace_new_shallow_copy (VlScaleSpace *self) |
| Create a new shallow copy of the object. More... | |
| void | vl_scalespace_delete (VlScaleSpace *self) |
| Delete object. More... | |
| void | _vl_scalespace_fill_octave (VlScaleSpace *self, vl_index o) |
| Fill octave starting from the first level. More... | |
| static void | _vl_scalespace_start_octave_from_image (VlScaleSpace *self, float const *image, vl_index o) |
| Initialize the first level of an octave from an image. More... | |
| static void | _vl_scalespace_start_octave_from_previous_octave (VlScaleSpace *self, vl_index o) |
| Initialize the first level of an octave from the previous octave. More... | |
| void | vl_scalespace_put_image (VlScaleSpace *self, float const *image) |
| Initialise Scale space with new image. More... | |
Detailed Description
Function Documentation
◆ _vl_scalespace_fill_octave()
| void _vl_scalespace_fill_octave | ( | VlScaleSpace * | self, |
| vl_index | o | ||
| ) |
- Parameters
-
self object instance. o octave to process.
The function takes the first sublevel of octave o (the one at sublevel octaveFirstLevel and iteratively smoothes it to obtain the other octave levels.
◆ _vl_scalespace_start_octave_from_image()
|
static |
- Parameters
-
self VlScaleSpace object instance. image image data. o octave to start.
The function initializes the first level of octave o from image image. The dimensions of the image are the ones set during the creation of the VlScaleSpace object instance.
◆ _vl_scalespace_start_octave_from_previous_octave()
|
static |
- Parameters
-
self object. o octave to initialize.
The function initializes the first level of octave o from the content of octave o - 1.
◆ copy_and_downsample()
|
static |
- Parameters
-
destination output imgae buffer. source input image buffer. width input image width. height input image height. numOctaves octaves (non negative).
The function downsamples the image d times, reducing it to 1/2^d of its original size. The parameters width and height are the size of the input image. The destination image dst is assumed to be floor(width/2^d) pixels wide and floor(height/2^d) pixels high.
◆ copy_and_upsample()
|
static |
- Parameters
-
destination output image. source input image. width input image width. height input image height.
The output image has dimensions height by 2 width (so the destination buffer must be at least as big as two times the input buffer).
Upsampling is performed by linear interpolation.
◆ vl_scalespace_delete()
| void vl_scalespace_delete | ( | VlScaleSpace * | self | ) |
- Parameters
-
self object to delete.
- See also
- vl_scalespace_new()
◆ vl_scalespace_get_default_geometry()
- Parameters
-
width image width. height image height.
- Returns
- the default scale space geometry.
Both width and height must be at least one pixel wide.
◆ vl_scalespace_get_geometry()
| VlScaleSpaceGeometry vl_scalespace_get_geometry | ( | VlScaleSpace const * | self | ) |
- Parameters
-
self object.
- Returns
- the scale space geometry.
◆ vl_scalespace_get_level()
| float* vl_scalespace_get_level | ( | VlScaleSpace * | self, |
| vl_index | o, | ||
| vl_index | s | ||
| ) |
- Parameters
-
self object. o octave index. s level 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.
◆ vl_scalespace_get_level_const()
| const float* vl_scalespace_get_level_const | ( | VlScaleSpace const * | self, |
| vl_index | o, | ||
| vl_index | s | ||
| ) |
- Parameters
-
self object. o octave index. s level index.
- Returns
- pointer to the data for octave o, level s.
This function is the same as vl_scalespace_get_level but reutrns a const pointer to the data.
◆ vl_scalespace_get_level_sigma()
| double vl_scalespace_get_level_sigma | ( | VlScaleSpace const * | self, |
| vl_index | o, | ||
| vl_index | s | ||
| ) |
- Parameters
-
self object. o octave index. s sublevel index.
The function returns the scale \(\sigma(o,s)\) as a function of the octave index o and sublevel s.
◆ vl_scalespace_get_octave_geometry()
| VlScaleSpaceOctaveGeometry vl_scalespace_get_octave_geometry | ( | VlScaleSpace const * | self, |
| vl_index | o | ||
| ) |
- Parameters
-
self object. o octave index.
- Returns
- the geometry of octave o.
◆ vl_scalespace_new()
| VlScaleSpace* vl_scalespace_new | ( | vl_size | width, |
| vl_size | height | ||
| ) |
- Parameters
-
width image width. height image height.
- Returns
- new scale space object.
This function is the same as vl_scalespace_new_with_geometry() but it uses vl_scalespace_get_default_geometry to initialise the geometry of the scale space from the image size.
◆ vl_scalespace_new_copy()
| VlScaleSpace* vl_scalespace_new_copy | ( | VlScaleSpace * | self | ) |
- Parameters
-
self object to copy from.
The function returns NULL if the copy cannot be made due to an out-of-memory condition.
◆ vl_scalespace_new_shallow_copy()
| VlScaleSpace* vl_scalespace_new_shallow_copy | ( | VlScaleSpace * | self | ) |
- Parameters
-
self object to copy from.
The function works like vl_scalespace_new_copy() but only allocates the scale space, without actually copying the data.
◆ vl_scalespace_new_with_geometry()
| VlScaleSpace* vl_scalespace_new_with_geometry | ( | VlScaleSpaceGeometry | geom | ) |
- Parameters
-
geom scale space geomerty.
- Returns
- new scale space object.
If the geometry is not valid (see ::VlScaleSpaceGeometry), the result is unpredictable.
The function returns NULL if it was not possible to allocate the object because of an out-of-memory condition.
- See also
- ::VlScaleSpaceGeometry, vl_scalespace_delete().
◆ vl_scalespace_put_image()
| void vl_scalespace_put_image | ( | VlScaleSpace * | self, |
| float const * | image | ||
| ) |
- Parameters
-
self VlScaleSpace object instance. image image to process.
Compute the data of all the defined octaves and scales of the scale space self.
◆ vl_scalespacegeometry_is_equal()
| vl_bool vl_scalespacegeometry_is_equal | ( | VlScaleSpaceGeometry | a, |
| VlScaleSpaceGeometry | b | ||
| ) |
- Parameters
-
a first geometry. b second geometry.
- Returns
- true if equal.