Documentation>C API
Functions
fisher.c File Reference

Fisher - Declaration. More...

`#include "fisher.h"`
`#include "gmm.h"`
`#include "mathop.h"`
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <string.h>`

## Functions

vl_size | vl_fisher_encode (void *enc, vl_type dataType, void const *means, vl_size dimension, vl_size numClusters, void const *covariances, void const *priors, void const *data, vl_size numData, int flags)
| Fisher vector encoding of a set of vectors.

## Detailed Description

Author
  David Novotny

## Function Documentation

## ◆ vl_fisher_encode()

vl_size vl_fisher_encode | ( | void * | enc,
|  | vl_type | dataType,
|  | void const * | means,
|  | vl_size | dimension,
|  | vl_size | numClusters,
|  | void const * | covariances,
|  | void const * | priors,
|  | void const * | data,
|  | vl_size | numData,
|  | int | flags )

Parameters

  dataType | the type of the input data (VL_TYPE_DOUBLE or VL_TYPE_FLOAT).
  enc | Fisher vector (output).
  means | Gaussian mixture means.
  dimension | dimension of the data.
  numClusters | number of Gaussians mixture components.
  covariances | Gaussian mixture diagonal covariances.
  priors | Gaussian mixture prior probabilities.
  data | vectors to encode.
  numData | number of vectors to encode.
  flags | options.

Returns
  number of averaging operations.

means and covariances have dimension rows and numCluster columns. priors is a vector of size numCluster. data has dimension rows and numData columns. enc is a vecotr of size equal to twice the product of dimension and numClusters. All these vectors and matrices have the same class, as specified by dataType, and must be stored in column-major format.

flag can be used to control several options: VL_FISHER_FLAG_SQUARE_ROOT, VL_FISHER_FLAG_NORMALIZED, VL_FISHER_FLAG_IMPROVED, and VL_FISHER_FLAG_FAST.

The function returns the number of averaging operations actually performed. The upper bound is the number of input features by the number of GMM modes; however, assignments are usually failry sparse, so this number is often much smaller. In particular, with the VL_FISHER_FLAG_FAST, is equal to the number of input features. This information can be used for diagnostic purposes.

See also
  Fisher Vector encoding (FV)