Local Intensity Order Pattern (LIOP) descriptor - Definition. More...
Functions | |
vl_index | get_permutation_index (vl_uindex *permutation, vl_size size) |
Compute permutation index. More... | |
VlLiopDesc * | vl_liopdesc_new (vl_int numNeighbours, vl_int numSpatialBins, float radius, vl_size sideLength) |
Create a new LIOP object instance. More... | |
VlLiopDesc * | vl_liopdesc_new_basic (vl_size sideLength) |
Create a new object with default parameters. More... | |
void | vl_liopdesc_delete (VlLiopDesc *self) |
Delete object instance. More... | |
void | vl_liopdesc_process (VlLiopDesc *self, float *desc, float const *patch) |
Compute liop descriptor for a patch. More... | |
vl_size | vl_liopdesc_get_dimension (VlLiopDesc const *self) |
Get the dimension of a LIOP descriptor. More... | |
vl_size | vl_liopdesc_get_num_neighbours (VlLiopDesc const *self) |
Get the number of neighbours. More... | |
float | vl_liopdesc_get_intensity_threshold (VlLiopDesc const *self) |
Get the intensity threshold. More... | |
void | vl_liopdesc_set_intensity_threshold (VlLiopDesc *self, float x) |
Set the intensity threshold. More... | |
double | vl_liopdesc_get_neighbourhood_radius (VlLiopDesc const *self) |
Get the neighbourhood radius. More... | |
vl_size | vl_liopdesc_get_num_spatial_bins (VlLiopDesc const *self) |
Get the number of spatial bins. More... | |
Detailed Description
Function Documentation
◆ get_permutation_index()
- Parameters
-
permutation array containing all values from 0 to (size - 1) (input/output). size size of the permutation array.
- Returns
- permutation index.
Compute the position of permutation in the lexycographcial sorting of permutations of the given size.
For example, in the lexicographical ordering, permutations of four elements are listed as [1 2 3 4], [1 2 4 3], [1 3 2 4], [1 3 4 2], [1 4 2 3], [1 4 3 2], [2 1 3 4], ..., [4 3 2 1].
The index can be computed as follows. First pick the first digit perm[1]. This is either 1,2,...,n. For each choice of the first digits, there are (n-1)! other permutations, separated therefore by (n-1)! elements in lexicographical order.
Process then the second digit perm[2]. This can be though as finding the lexycotraphical index of perm[2], ..., perm[n], a permutation of n-1 elements. This can be explicitly obtained by taking out 1 from all elements perm[i] > perm[1].
◆ vl_liopdesc_delete()
void vl_liopdesc_delete | ( | VlLiopDesc * | self | ) |
- Parameters
-
self object instance.
◆ vl_liopdesc_get_dimension()
vl_size vl_liopdesc_get_dimension | ( | VlLiopDesc const * | self | ) |
- Parameters
-
self object.
- Returns
- dimension.
◆ vl_liopdesc_get_intensity_threshold()
float vl_liopdesc_get_intensity_threshold | ( | VlLiopDesc const * | self | ) |
- Parameters
-
self object.
- Returns
- intensity threshold.
- See also
- liop-weighing
◆ vl_liopdesc_get_neighbourhood_radius()
double vl_liopdesc_get_neighbourhood_radius | ( | VlLiopDesc const * | self | ) |
- Parameters
-
self object.
- Returns
- neighbourhood radius.
◆ vl_liopdesc_get_num_neighbours()
vl_size vl_liopdesc_get_num_neighbours | ( | VlLiopDesc const * | self | ) |
- Parameters
-
self object.
- Returns
- number of neighbours.
◆ vl_liopdesc_get_num_spatial_bins()
vl_size vl_liopdesc_get_num_spatial_bins | ( | VlLiopDesc const * | self | ) |
- Parameters
-
self object.
- Returns
- number of spatial bins.
◆ vl_liopdesc_new()
VlLiopDesc* vl_liopdesc_new | ( | vl_int | numNeighbours, |
vl_int | numSpatialBins, | ||
float | radius, | ||
vl_size | sideLength | ||
) |
- Parameters
-
numNeighbours number of neighbours. numSpatialBins number of bins. radius radius of the cirucal sample neighbourhoods. sideLength width of the input image patch (the patch is square).
- Returns
- new object instance.
The value of radius should be at least less than half the sideLength of the patch.
◆ vl_liopdesc_new_basic()
VlLiopDesc* vl_liopdesc_new_basic | ( | vl_size | sideLength | ) |
- Parameters
-
sideLength size of the patches to be processed.
- Returns
- new object.
- See also
- vl_liopdesc_new.
◆ vl_liopdesc_process()
void vl_liopdesc_process | ( | VlLiopDesc * | self, |
float * | desc, | ||
float const * | patch | ||
) |
- Parameters
-
self object instance desc descriptor to be computed (output). patch patch to process
Use vl_liopdesc_get_dimension to get the size of the descriptor desc.
◆ vl_liopdesc_set_intensity_threshold()
void vl_liopdesc_set_intensity_threshold | ( | VlLiopDesc * | self, |
float | x | ||
) |
- Parameters
-
self object. x intensity threshold.
If non-negative, the threshold as is is used when comparing intensities. If negative, the absolute value of the specified number is multipled by the maximum intensity difference inside a patch to obtain the threshold.
- See also
- liop-weighing