1. A method for representing an image, the image being represented as a Gaussian pyramid, the Gaussian pyramid comprising a plurality of pyramid images, wherein the pyramid image comprises a plurality of pixels, the method comprising: a. identifying a plurality of feature points among the plurality of pixels in the pyramid image, a feature point of the plurality of feature points being invariant to transformations of the image; b. determining one or more orientations of the feature points in the pyramid image based on a set of orientation calculating algorithms; c. extracting a plurality of patches encompassing the plurality of feature points from the pyramid image based on the one or more orientations and a pre-defined sampling factor of the pyramid image; d. defining feature vectors for the patches; and e. representing the image based on the plurality of feature points and feature vectors of the pyramid image.