iat_dense_sift creates SIFTIMAGE from IMAGE when the pixels of latter are replaced by SIFT descriptors [1],[2]. SIFTIMAGE is defined on the meshgrid [GRIDX, GRIDY], which results from IMAGE’s sampling with GSPACING factor (after ignoring PS/2 rows and columns from all image sides)

Input arguments:

IMAGE The input image
PS The width (=height) of the square patch that is described by SIFT vectors
GRIDSPACING the sampling factor of IMAGE’s grid that defines the resolution of SIFTIMAGE


The above syntax allows the user to define his own parameters. There parameters are:

‘numAngles’ The quantization step (angle) for gradient orientation (default: 8)
‘numBins’ The number of spatial bins in each dimension (default: 4).The size of each SIFT descriptor is numAngles*numBins*numBins
‘alpha’ The attenuation of angles; it must be odd number (default: 9)
‘sigma’ The scale of gaussian kernel for computing DOG (default: 1).When sigma is scalar, the size of kernel is (4*ceil(sigma)+1)X(4*ceil(sigma)+1). When sigma is a 2-element vector, i.e. [sigmaX, sigmaY], the size of the kernel is (4*ceil(sigmaY)+1)X(4*ceil(sigmaX)+1)


Output arguments:

SIFTIMAGE The output SIFT-image
GRIDX,GRIDY The meshgrid that defines the support area of SIFTIMAGE



[1] C. Liu, J. Yuen, A. Torralba: SIFT Flow: Dense Correspondence across Scenes and its Applications, IEEE Trans. on PAMI, vol. 33, no. 5, 2011

[2] D.G. Lowe, Distinctive image features from scale-invariant keypoints, Int. Journal on Computer Vision, vol. 60, no. 2, 2004

Back to Index