I am using a SIFT algorithm to extract features from an image. I understand that the SIFT descriptor first finds the extrema and then finds the gradient and direction of each of these interest points.
What happens after this part?
First of all, there are two distinct parts to SIFT. The first part is interest point detection algorithm (aka key-point detection), which finds local extrema of the multi-scale difference-of-gaussians function.
The second part is computing the feature descriptor, which is a vector describing the image patch around each key point. SIFT computes this descriptor by taking a 16x16 block of pixels centered at a key point, dividing it into 4x4 cells, and computing an 8-bin histogram of gradient orientations within each cell. This results in a 4*4*8=128-element vector, which is the descriptor.
Finally, the SIFT algorithm normalizes the feature descriptor for rotation. It finds the dominant gradient direction in the patch around the key point and shfits the gradient histograms such that the first orientation bin corresponds to that direction. This makes the descriptors invariant to in-plane rotation.