1. A computer implemented method for fingerprinting image data, the computer implemented method comprising: selecting a first feature point in the image data; identifying a plurality of neighborhood feature points closest in distance to the first feature point, wherein the plurality of neighborhood feature points closest in distance to the first feature point includes a P-neighborhood, the P-neighborhood including P number of neighborhood feature points closest in distance to the first feature point and feature points in the P-neighborhood are determined by storing all feature points of the image data in a feature point table, and determining P number of feature points closest to the location of the first feature point within the feature point table; generating a plurality of point vectors, each point vector computed based on distance and angle between a particular neighborhood feature point and the first feature point; and aggregating the plurality of point vectors to generate a fingerprint corresponding to the first feature point.