Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How can i use a custom norm with BruteForceMatcher ?

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

  1. add a <custom_norm_type> to the enum list in core.hpp (l.124)
  2. 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?