1 | initial version |

**SIFT** algorithm creates **float descriptors** - that is a vector of floating-point values. In the same family is the **SURF** descriptor. There are some good reasons they work this way, but processors are lazy when crunching float numbers. This is why scientists developed binary descriptors, which describe points as a sequence of 0's and 1's.

**Binary descriptors** are fast - much faster to compare and match. So a new generation of image keypoint descriptors has grown using this technique: among them **BRIEF** and **FREAK**. They are in many ways similar to their float cousins, but it's clear that the internals cannot be compatible - an algorithm that compares strings of bits cannot compare vectors of floats.

The techniques involved in matching the two classes of descriptors and the math foundations differ. I do not know exactly how the `RobustMatcher`

works, but it's a good chance that adapting it is not as simple as replacing **float** with **bool**.

Copyright OpenCV foundation, 2012-2018. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.