SIFT feature descriptor implementation
According to Lowe's paper about the original SIFT algorithm, a feature descriptor consisting of 4 x 4 orientation histograms is calculated from a 16 x 16 window. The scale of the descriptor is only used to select the level of gaussian blur for the image.
Looking at the OpenCV implementation, this doesn't seem to be the case. In calcSIFTDescriptor
there is the following code to calculate the histograms:
for( k = 0; k < len; k++ )
{
// histogram update
}
Where len
is the number of samples used. According to Lowe's algorithm, this should always be 256 (16 x 16), shouln't be? In OpenCV implementation the len
depends on the scale of the descriptor.
Could someone clarify this?
Thanks