fixed #2580, #2210. some work on #2025.
authorVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Tue, 29 Jan 2013 15:38:56 +0000 (19:38 +0400)
committerVadim Pisarevsky <vadim.pisarevsky@gmail.com>
Tue, 29 Jan 2013 15:38:56 +0000 (19:38 +0400)
commitc69312ea0df5b55c24aeac27560679cb4b2f3419
tree771de1f5a9b8454d8e03e967d121cd4cfa99f643
parentab8d92e1b8a5bfacc0aa22cbca76fe8348be4473
fixed #2580, #2210. some work on #2025.

modified SIFT to 1) double image before finding keypoints, 2) use floating-point internally instead of 16-bit integers, 3) set the keypoint response to the abs(interpolated_DoG_value). step 1) increases the number of detected keypoints significantly and together with 2) and 3) it improves some detection benchmarks. On the other hand, the stability of the small keypoints is lower, so the rotation and scale invariance tests now struggle a bit. In 2.5 need to make this feature optional and add some more intelligence to the algorithm.

added test that finds a planar object using SIFT.
modules/nonfree/CMakeLists.txt
modules/nonfree/src/sift.cpp
modules/nonfree/test/test_features2d.cpp
modules/nonfree/test/test_rotation_and_scale_invariance.cpp
samples/cpp/descriptor_extractor_matcher.cpp