1. A computer-implemented method, comprising: obtaining an electronic image of an object; performing an edge detection algorithm on the electronic image to obtain a first set of edges corresponding to the object; performing an edge pooling algorithm on the first set of edges to obtain a second set of edges, the second set of edges being less in number than the first set of edges; sampling the electronic image to obtain a set of edge patches based on the second set of edges; sampling the electronic image to obtain a set of color patches from the electronic image; sampling the electronic image to obtain a set of texture patches from the electronic image; selecting a set of patches from the set of edge patches, the set of color patches and the set of texture patches by selecting an (i th +1) patch to be within the set of patches when a Euclidean distance between an i th patch of the set of patches and the (i th +1) patch is greater than or equal to a Euclidean distance between the i th patch and all other patches; performing a part selection algorithm on the selected set of patches to obtain a first set of parts; performing a part pooling algorithm on the first set of parts to obtain a second set of parts, the second set of parts being less in number than the first set of parts, wherein the part pooling algorithm includes: (i) dividing each of the first set of parts into a number of subparts; and (ii) performing a MAX operation on each of the subparts; and registering the second set of parts to the object.