I was trying to use FREAKS (https://github.com/kikohs/freak) & BRISK (http://www.asl.ethz.ch/people/lestefan/personal/BRISK) author's code. They both define custom Hamming norms to use SSSE3 instructions.
Only there's a major difference between 2.3.x and 2.4.x in BruteForceMatcher. Since commit 957e80ab, BruteForceMatcher takes an (int normType) instead of a Distance.
Thus their code using custom norms is now broken, and I don't quite see how to use a custom distance without modifying library code.
The only solution i have seen up to now is
- add a <custom_norm_type> to the enum list in core.hpp (l.124)
- add calls to the custom norm function in similar ways than where NORM_HAMMING is used, i.e. lots of changes in core/src/stat.cpp
Now i have to recompile OpenCV & use a custom version. This is annoying.
If you check the links above, you'll see how much more practical it was before.
So what do you recommend now?