Local Intensity Order Pattern (LIOP) descriptor - Definition. More...
Go to the source code of this file.
Defines | |
#define | DEFAULT_INTENSITY_THRESHOLD -(5.0/255) |
#define | DEFAULT_NUM_NEIGHBOURS 4 |
#define | DEFAULT_NUM_SPATIAL_BINS 6 |
#define | DEFAULT_RADIUS 6.0 |
#define | VL_QSORT_array VlLiopDesc* |
#define | VL_QSORT_array VlLiopDesc* |
#define | VL_QSORT_cmp patch_cmp |
#define | VL_QSORT_cmp neigh_cmp |
#define | VL_QSORT_prefix patch |
#define | VL_QSORT_prefix neigh |
#define | VL_QSORT_swap patch_swap |
#define | VL_QSORT_swap neigh_swap |
Functions | |
static vl_int | factorial (vl_int num) |
VL_INLINE vl_index | get_permutation_index (vl_uindex *permutation, vl_size size) |
VL_INLINE float | neigh_cmp (VlLiopDesc *liop, vl_index i, vl_index j) |
VL_INLINE void | neigh_swap (VlLiopDesc *liop, vl_index i, vl_index j) |
VL_INLINE float | patch_cmp (VlLiopDesc *liop, vl_index i, vl_index j) |
VL_INLINE void | patch_swap (VlLiopDesc *liop, vl_index i, vl_index j) |
void | vl_liopdesc_delete (VlLiopDesc *self) |
Delete object instance. | |
vl_size | vl_liopdesc_get_dimension (VlLiopDesc const *self) |
Get the dimension of a LIOP descriptor. | |
float | vl_liopdesc_get_intensity_threshold (VlLiopDesc const *self) |
Get the intensity threshold. | |
double | vl_liopdesc_get_neighbourhood_radius (VlLiopDesc const *self) |
Get the neighbourhood radius. | |
vl_size | vl_liopdesc_get_num_neighbours (VlLiopDesc const *self) |
Get the number of neighbours. | |
vl_size | vl_liopdesc_get_num_spatial_bins (VlLiopDesc const *self) |
Get the number of spatial bins. | |
VlLiopDesc * | vl_liopdesc_new (vl_int numNeighbours, vl_int numSpatialBins, float radius, vl_size sideLength) |
Create a new LIOP object instance. | |
VlLiopDesc * | vl_liopdesc_new_basic (vl_size sideLength) |
Create a new object with default parameters. | |
void | vl_liopdesc_process (VlLiopDesc *self, float *desc, float const *patch) |
Compute liop descriptor for a patch. | |
void | vl_liopdesc_set_intensity_threshold (VlLiopDesc *self, float x) |
Set the intensity threshold. |
Local Intensity Order Pattern (LIOP) descriptor - Definition.
Definition in file liop.c.
#define DEFAULT_INTENSITY_THRESHOLD -(5.0/255) |
$ into a vector ${h}$ and then normalising it:
\[ = {{h}}{\|{h}\|_2} \]
The dimensionality is therefore $m n!$, where $m$ is the numSpatialBins
number of spatial bins and $n$ is the numNeighbours
number of neighbours (see vl_liopdesc_new). By default, this descriptor is stored in single
format. It can be stored as a sequence of bytes by premultiplying the values by the constant 255 and then rounding:
\[ {round}[ 255\, ]. \]
#define DEFAULT_NUM_NEIGHBOURS 4 |
#define DEFAULT_NUM_SPATIAL_BINS 6 |
#define DEFAULT_RADIUS 6.0 |
#define VL_QSORT_array VlLiopDesc* |
#define VL_QSORT_array VlLiopDesc* |
#define VL_QSORT_cmp patch_cmp |
#define VL_QSORT_cmp neigh_cmp |
#define VL_QSORT_prefix patch |
#define VL_QSORT_prefix neigh |
#define VL_QSORT_swap patch_swap |
#define VL_QSORT_swap neigh_swap |
VL_INLINE vl_index get_permutation_index | ( | vl_uindex * | permutation, |
vl_size | size | ||
) |
VL_INLINE float neigh_cmp | ( | VlLiopDesc * | liop, |
vl_index | i, | ||
vl_index | j | ||
) |
VL_INLINE void neigh_swap | ( | VlLiopDesc * | liop, |
vl_index | i, | ||
vl_index | j | ||
) |
VL_INLINE float patch_cmp | ( | VlLiopDesc * | liop, |
vl_index | i, | ||
vl_index | j | ||
) |
VL_INLINE void patch_swap | ( | VlLiopDesc * | liop, |
vl_index | i, | ||
vl_index | j | ||
) |
void vl_liopdesc_delete | ( | VlLiopDesc * | self | ) |
vl_size vl_liopdesc_get_dimension | ( | VlLiopDesc const * | self | ) |
float vl_liopdesc_get_intensity_threshold | ( | VlLiopDesc const * | self | ) |
double vl_liopdesc_get_neighbourhood_radius | ( | VlLiopDesc const * | self | ) |
vl_size vl_liopdesc_get_num_neighbours | ( | VlLiopDesc const * | self | ) |
vl_size vl_liopdesc_get_num_spatial_bins | ( | VlLiopDesc const * | self | ) |
VlLiopDesc* vl_liopdesc_new | ( | vl_int | numNeighbours, |
vl_int | numSpatialBins, | ||
float | radius, | ||
vl_size | sideLength | ||
) |
Create a new LIOP object instance.
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). |
The value of radius should be at least less than half the sideLength of the patch.
VlLiopDesc* vl_liopdesc_new_basic | ( | vl_size | sideLength | ) |
Create a new object with default parameters.
sideLength | size of the patches to be processed. |
void vl_liopdesc_process | ( | VlLiopDesc * | self, |
float * | desc, | ||
float const * | patch | ||
) |
Compute liop descriptor for a patch.
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.
void vl_liopdesc_set_intensity_threshold | ( | VlLiopDesc * | self, |
float | x | ||
) |
Set the intensity threshold.
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.