Computes a SIFT feature vector from a square patch (or image). Patch must be square and the output vector will always be a (128,) vector. Please see dsift() for more information.

The output of vector_128_dsift() is normalised using the hellinger norm (also called the Bhattacharyya distance) which is a measure designed to quantify the similarity between two probability distributions. Since SIFT is a histogram based feature, this has been shown to improve performance. Please see [1] for more information.

  • x (Image or subclass or (C, Y, Y) ndarray) – Either the image object itself or an array with the pixels. The first dimension is interpreted as channels. Must be square i.e. height == width.
  • dtype (np.dtype, optional) – The dtype of the returned vector.

ValueError – Only square images are supported.


[1]Arandjelovic, Relja, and Andrew Zisserman. “Three things everyone should know to improve object retrieval.”, CVPR, 2012.