SIFT Descriptor Extractor, strange behaviour with non-SIFT keypoints (Bug #1130)


Added by Simone Gasparini almost 14 years ago. Updated over 13 years ago.


Status:Done Start date:
Priority:High Due date:
Assignee:Maria Dimashova % Done:

0%

Category:features2d
Target version:-
Affected version: Operating System:
Difficulty: HW Platform:
Pull request:

Description

I noticed that there is a strange behavior of the function compute of the of the SIFT Descriptor Extractor. In particular 2 things:

- the class_id member of the Keypoints passed to the function is erased and set to 0. This always happens for SIFT, while for other descriptor extractors the info are preserved.

- the strange thing is that if the keypoints are not extracted with a SIFT feature extractor, then there are always MORE keypoints after the function call (according to the docs it may be the case that some of the keypoints are dropped, but not added).

My version is r5404M and i run some tests with the sample code descriptor_extractor_matcher.cpp
Printing the size of keypoints1 before and after the call of compute will show the problem. (when calling with a feature extractor different than SIFT)


Related issues

related to Bug #1140: Update doc on descriptor extractor Done

Associated revisions

Revision ada3e6e6
Added by Maria Dimashova over 13 years ago

fixed erasing class_id and response members in sift (#1130)

History

Updated by Maria Dimashova over 13 years ago

Thanks. The problem with erasing class_id and response members has been fixed in r1130. As regards the increasing size of keypoints, it is not a bug. Rob Hess's SIFT implementation, which are integrated in OpenCV now, duplicates keypoints with several dominant orientations, so the size of keypoints vector can grow. But you are right, this behavior is not documented. I created the ticket #1140 to fix it.

  • Status changed from Open to Done
  • (deleted custom field) set to fixed

Also available in: Atom PDF