Als ik jou was, zou ik liever de descriptors in de code vergelijken dan in SQL. Daar is SQL niet voor bedoeld. Ik zou het volgende doen:-
1. Pre-load N descriptors from SQL onto memory.
2. Compare distances to query descriptor, descriptor by descriptor.
3. If distance<threshold, push to possiblematches.
4. When you reach N/2 descriptors, push the next N.
5. Compare all matches, choose the best one or the best D descriptors, as per your requirement.
Hiervoor gebruik ik echter liever de ingebouwde FileStorage-klasse van OpenCV die I/O levert voor XML- en YAML-bestanden; het lost de hoofdpijn op van het handmatig ontleden van descriptorwaarden.