VLFeat - Documentation > C API

# VLFeat.org

Documentation> C API

- Main Page
- Related Pages
- Data Structures
- Files

Local Intensity Order Pattern (LIOP) descriptor

Author
  Hana Sarbortova
  Andrea Vedaldi

liop.h implements Local Intensity Order Pattern descriptor (LIOP) of [32] . LIOP is a local image descriptor, similarly to the SIFT descriptor.

Getting started with LIOP demonstrates how to use the C API to compute the LIOP descriptor of a patch. For further details refer to:

- LIOP fundamentals - LIOP definition and parameters.

# Getting started with LIOP

The following code fragment demonstrates how tow to use liop.h in a C program in order to compute the LIOP descriptor of an image patch.

#include <vl/liop.h>
// Create a new object instance (these numbers corresponds to parameter
// values proposed by authors of the paper, except for 41)
vl_size sideLength = 41 ;
VlLiopDesc * liop = vl_liopdesc_new_basic (sideLength);
// allocate the descriptor array
vl_size dimension = vl_liopdesc_get_dimension(liop) ;
float * desc = vl_malloc(sizeof(float) * dimension) ;
// compute descriptor from a patch (an array of length sideLegnth *
// sideLength)
vl_liopdesc_process(liop, desc, patch) ;
// delete the object
vl_liopdesc_delete(liop) ;

The image patch must be of odd side length and in single precision. There are several parameters affecting the LIOP descriptor. An example is the threshold used to discard low-contrast oder pattern in the computation of the statistics. This is changed by using vl_liopdesc_set_intensity_threshold.