Reputation: 342
I want to find the sift descriptor at a co-ordinate ( x ,y ) in the image with a patch size of 5X5 neighbour with the co-ordinate in the middle.
The intention behind it is to analyse the orientation values that I get on that co-ordinate for further processing.
Is there any method in matlab that would allow me to do this ?
I have tried to understand vl_dsift which would give me sift descriptor at every point and maybe use it for just the co-ordinate that I want but could not understand how to use it ...
Could someone help me with it or suggest any better alternative out there ?
Upvotes: 2
Views: 3426
Reputation: 2707
The MATLAB command vl_sift (and the command line utility) can bypass the detector and compute the descriptor on custom frames using the Frames option.
For instance, we can compute the descriptor of a SIFT frame centered at position (100,100), of scale 10 and orientation -pi/8 by
fc = [100;100;10;-pi/8] ; [f,d] = vl_sift(I,'frames',fc) ;
Multiple frames fc may be specified as well. In this case they are re-ordered by increasing scale. The Orientations option instructs the program to use the custom position and scale but to compute the keypoint orientations, as in
fc = [100;100;10;0] ; [f,d] = vl_sift(I,'frames',fc,'orientations') ;
Notice that, depending on the local appearance, a keypoint may have multiple orientations. Moreover, a keypoint computed on a constant image region (such as a one pixel region) has no orientations!
checkout http://www.vlfeat.org/overview/sift.html . vl_feat is really really neat, and very easy to use, even easier to install.
Upvotes: 4