VLFeat - Documentation > C API

# VLFeat.org

Documentation> C API

- Main Page
- Related Pages
- Data Structures
- Files

Local Binary Patterns (LBP) descriptor

Author
  Andrea Vedaldi

lbp.h implements the Local Binary Pattern (LBP) feature descriptor. The LBP descriptor [22] is a histogram of quantized LBPs pooled in a local image neighborhood. Getting started with LBP demonstrates how to use the C API to compute the LBP descriptors of an image. For further details refer to:

- Local Binary Patterns fundamentals - LBP definition and parameters.

# Getting started with LBP

To compute the LBP descriptor of an image, start by creating a VlLbp object instance by specifying the type of LBP quantization. Given the configure LBP object, then call vl_lbp_process to process a grayscale image and obtain the corresponding LBP descriptors. This function expects as input a buffer large enough to contain the computed features. If the image has size `width` x `height`, there are exactly `floor`(width/cellSize) x `floor`(height/cellSize) cells, each of which has a histogram of LBPs of size `dimension` (as returned by vl_lbp_get_dimension). Thus the required buffer has size `floor`(width/cellSize) x `floor`(height/cellSize) x `dimension`.

VlLbp supports computing transposed LPBs as well. A transposed LBP is the LBP obtained by transposing the input image (regarded as a matrix). This functionality can be useful to compute the features when the input image is stored in column major format (e.g. MATLAB) rather than row major.