I think the Gaussian weighting of SIFT descriptor is wrong
In David G. Lowe's paper, the Sigma of Gaussian weighting function is one half the width of the descriptor window. If the descriptor window is 32x32 pixels with 4x4 subregions, I think the Sigma should be 8 rather than 2. But in sift.cpp, the code is "float exp_scale = -1.f/(d * d * 0.5f)", which means the Sigma is 2. Is there anything wrong?
Hmm even if it is wrong, your calculation is off also right? You say half of descriptor windows which is 32x32pixels. This means that sigma in this case should be 16 right? I do not know how half of 32 would result in 8.
Sorry, it is not exact. I think 32x32 means (2xwidth+1)x(2xwidth+1), so width is 15.5 and Sigma is 7.75.
Hmm, have you checked the vlfeat-implementation? http://www.vlfeat.org/overview/sift.html#tut.sift.ubc
I see. Similar with vlfeat,"c_rot" and "r_rot" have been normalized by "hist_width", so the sigma is "d/2". Thanks for Guanta and StevenPuttemans' help.