As it was mentioned, there is no that can be easily used for all out-of-the-box cases, and the main reason for this is the huge variety of software and hardware related factors. An algorithm may be highly accurate, but, at the same time, it may require lots of resources (such as memory or CPU usage).
Another algorithm may require fewer parameters (which is almost always a relief), but then again, it may not be able to achieve its highest performance. We can't even begin to name all the possible factors that affect choosing the best Feature2D (or featured detector and descriptor extractor) algorithm or the best matching algorithm, but we can still take into consideration some of the main and more well-known factors that are also the reason why OpenCV and most computer vision algorithms are created the way they are, in terms of structure. Here are those factors:
- Accuracy
- Speed
- Resource usage (memory, disk space, and so on)
- Availability
Note that the word performance usually...