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 (202, 302-306) 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 , for each feature point, two or more orientations of the feature point in the pyramid image, each orientation of the feature point being determined based on a respective one of a set of two or more different orientation calculating algorithms, wherein determining the two or more orientations of the feature point in the pyramid image comprises calculating a set of orientations for the feature point by using the set of orientation calculating algorithms and replacing a group of orientations within a pre-defined angular distance of each other with a mean of the group of orientations; c. extracting , for each feature point, a patch encompassing the feature point from the pyramid image based on the two or more orientations of the feature point and a pre-defined sampling factor of the pyramid image; d. defining (208, 314-318) feature vectors for the patches; and e. representing the image based on the plurality of feature points and feature vectors of the pyramid image; wherein said set of two or more different orientation calculating algorithms comprises at least two of: a first orientation calculating algorithm that is configured to use an interpolated gradient method for determining an orientation; a second orientation calculating algorithm that is configured to perform a smoothing operation on the image; and a third orientation calculating algorithm that is configured to calculate an orientation by forming an orientation histogram. a. identifying (202, 302-306) 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 , for each feature point, two or more orientations of the feature point in the pyramid image, each orientation of the feature point being determined based on a respective one of a set of two or more different orientation calculating algorithms, wherein determining the two or more orientations of the feature point in the pyramid image comprises calculating a set of orientations for the feature point by using the set of orientation calculating algorithms and replacing a group of orientations within a pre-defined angular distance of each other with a mean of the group of orientations; c. extracting , for each feature point, a patch encompassing the feature point from the pyramid image based on the two or more orientations of the feature point and a pre-defined sampling factor of the pyramid image; d. defining (208, 314-318) feature vectors for the patches; and e. representing the image based on the plurality of feature points and feature vectors of the pyramid image; a first orientation calculating algorithm that is configured to use an interpolated gradient method for determining an orientation; a second orientation calculating algorithm that is configured to perform a smoothing operation on the image; and a third orientation calculating algorithm that is configured to calculate an orientation by forming an orientation histogram. <EOS>