How to convert David Lowe keypoints into OpenCV keypoints?

asked 2016-06-22 03:34:57 -0600

lovaj gravatar image

I want to use siftfast for computing SIFT keypoints.

The Keypoint structure is defined in siftfast.h as:

typedef struct KeypointSt {
    float row, col;             // Subpixel location of keypoint.
    float scale, ori;           // Scale and orientation (range [-PI,PI])
    float descrip[128];     // Vector of descriptor values
    struct KeypointSt *next;    // Pointer to next keypoint in list.
} *Keypoint;

While the consturctor of opencv keypoints is:

KeyPoint (float x, float y, float _size, float _angle=-1, float _response=0, int _octave=0, int _class_id=-1)

Now, I have to find a way to map the siftfast's Keypoint into OpenCV's KeyPoint:

  • row == x
  • col == y

But what about the other values? Can you help me this conversion?

edit retag flag offensive close merge delete

Comments

just saying, that project is 6 years old (and probably unmaintained).

berak gravatar imageberak ( 2016-06-22 03:51:16 -0600 )edit

I don't think

row == x
col == y

is correct. It should be the reverse.

If your lib (whatever lib you want to use) already computes the descriptor you want, you just need to fill the descriptor matrix to match them later. Cannot help you with the keypoint conversion.

Eduardo gravatar imageEduardo ( 2016-06-22 04:22:09 -0600 )edit

@berakhttp://stackoverflow.com/questions/14... just sayin' ;) And I don't know any other parallel (not gpu) SIFT implementation.

lovaj gravatar imagelovaj ( 2016-06-22 04:24:35 -0600 )edit

@berak but if you know any parallel implementation, please let me know! :)

lovaj gravatar imagelovaj ( 2016-06-22 04:30:03 -0600 )edit