Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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