1

I am working with an image that has blue and gray spots. Eventually I want to recognise all the images in a dataset that have this scene. I am using SIFT for this. I tried to map the keypoints that looks like this:

The generated keypoints are not at points of interest according to me. Am I doing anything wrong?

im1 = im2single(im1) ;
im1g = rgb2gray(im1) ;
[fa,da] = vl_sift(im1g) ; % fa is 4x14869, da is 128x14869
perm = randperm(size(fa,2)) ;
start=-49;
int=49;
while start<length(fa)
    figure % image(im1) % start=start+50
    sel=perm(start:start+int)
    h1=vl_plotframe(fa(:,sel)) ;
    set(h1, 'color', 'y', 'linewidth',3);
    start;
    pause;
end
  • Yes your keypoints look strange since most of them seem to lie in homogeneous regions. I think it will be better if you give more details on your question (or a snippet which shows how you compute the sifts). – Ash May 10 '17 at 07:41
  • @Ash I added the code to my question. Please help me. – wannabegeek May 10 '17 at 12:28
  • Unfortunately I don't have access to matlab/octave right now, and I don't know vfleat very well. But I suspect that the key-points are correct, it's just that the ones with low contrast are not suppressed in the result you show. Since I'm not sure I'd just suggest you add the octave/matlab tags to your question to increase visibility. – Ash May 10 '17 at 13:26
  • @Ash thanks. I enhanced the image. Now keypoints seem to be detected in the darker regions but still these do not seem to be useful regions for characteristic features. – wannabegeek May 10 '17 at 19:30
  • @Sardar Usama, agreed and corrected. thanks. – wannabegeek May 10 '17 at 19:32

1 Answers1

0

Your code doesn't work for me. It says in this line:

sel=perm(start:start+int)

Subscript indices must either be real positive integers or logicals.

You set start=-49, which is a negative index. Also start=start+50 gives an error... sorry, I can't reproduce your example.

Could you please correct your code?

burn4science
  • 61
  • 2
  • 4