1

I've just downloaded the Matlab toolbox Vlfeat to do some research of the descriptor denseSIFT. It has a wonderful function called vl_dsift() which satisfy me. However, I still have a little question about the description of this function in the vl_dsift.m, for convenience, I simply copy that here.

%   FURTHER DETAILS ON THE GEOMETRY
%
%   As mentioned, the VL_DSIFT() descriptors cover the bounding box
%   specified by BOUNDS = [XMIN YMIN XMAX YMAX]. Thus the top-left bin
%   of the top-left descriptor is placed at (XMIN, YMIN). The next
%   three bins to the right are at XMIN + SIZE, XMIN + 2*SIZE, XMIN +
%   3*SIZE. The X coordiante of the center of the first descriptor is
%   therefore at (XMIN + XMIN + 3*SIZE) / 2 = XMIN + 3/2 * SIZE.  For
%   instance, if XMIN = 1 and SIZE = 3 (default values), the X
%   coordinate of the center of the first descriptor is at 1 + 3/2 * 3
%   = 5.5. For the second descriptor immediately to its right this is
%   5.5 + STEP, and so on.

As described above, the default values of XMIN and SIZE are 1 and 3, and according to the description, the center X coordinate is (1+1+3*3)/2=5.5. But as we know, a SIFT descriptor is computed in a 4*4 bins region and each bin has 3 pixels here, thus the whole area of this region is actually 4*3*4*3=144, each column/row is 3*4 = 12 length, the corner of this region should be (12/2,12/2) = (6,6), not (5.5,5.5), as mentioned above. That's the question struggle me for a while. Does anyone know the truth? Thank you very much!

wythia
  • 11
  • 2

0 Answers0