开发者

Scale Invariant Feature Transform (SIFT ) Implementation in Matlab

I am trying to implement SIFT in matlab. I am following the Lowe's 2004 paper. I completed upto calculation of keypoints and assigning orientations to them.(i.e for all octaves). Here i got one doubt before implementing descriptors.. how I can find the descriptors for the keypoints in octaves of other size. ( If original image size is 256*256, the octaves of other size means like 128*128,64*64).

my approach is explained below.

  1. Here I taken a 256*256 image and octaves as 256*256,128*128,64*64,32*32 images. In each octave 5 images (one original and 4 blurred images).

  2. I calculated upto keypoint开发者_C百科s and orientations for all octaves. ( In this I have 2 images in each octave).

  3. the keypoints in octaves of size 128*128, 64*64,32*32. If I want to represent these keypoints on an image of 256*256 image, how I can represent? (My doubt is for eg. 64*64 image has keypoints range upto (64,64) ).

    If the answer is interpolation of 64*64 image to 256*256. how keypoints(i.e location,scale and orientation) are interpolated?

Any advice is greatly appreciated. Thanks.


I'd recommend you take a look at VLFeat's SIFT implementation (mex wrapper around C/C++ code). Dig into the source code to find what they're doing and why. Compare w/ Lowe's paper.


I am not sure what you are referring actually. Is it that you are stuck in reproducing the sift code in matlab. If so, you actually no need to represent the keypoints present in a lower scale image to the original scale. The values are stored in a 'vector' along with the octave in which it is present. In the later stages of coding, the octave number can be used for further calculation and to perform matching function.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜