dorian3d / DBoW2

Enhanced hierarchical bag-of-word library for C++
Other
850 stars 365 forks source link

Why was SURF Vocab and Database Removed? #48

Open marcusabate opened 5 years ago

marcusabate commented 5 years ago

I'm noticing that 2bbc1a0 replaced SURF with ORB. However, the FSurf64 class still remains. Is there a reason this out-of-the-box support for SURF descriptors was removed? If I add those typdefs back in I can make/make-install with no problem. But when I then build a project that includes the DBoW2 library, I end up with build errors:

undefined reference to `DBoW2::FSurf64::distance(std::vector<float, std::allocator<float> > const&, std::vector<float, std::allocator<float> > const&)'
undefined reference to `DBoW2::FSurf64::toString[abi:cxx11](std::vector<float, std::allocator<float> > const&)'
...

I've cut out a lot of the error messages above but that's the main idea. It continues on with similar 'undefined reference errors' for all the methods defined in FSurf64.h. But all these methods are defined in that file.

Is this related to the removal of SURF descriptor support in that commit?

I'm running OpenCV 3.3.1 on Ubuntu 18.04, and I've built OpenCV with opencv_contrib modules.