ORB算法是brief算法的改进版。ORB算法比SIFT算法效率高两个数量级。计算速度上ORB是SIFT的100倍,是SURF的10倍。综合性能是最好的。
ORB算法没有解决brief算法的不具备尺度不变性的缺点。但是因为是追求速度的算法,常常适用于视屏流的处理,可以通过跟踪或者一些启发式的策略来解决尺度不变性的问题。
在给出的程序代码中,使用了基于FLANN的描述符对象匹配。
高维数据的快速最近邻算法FLANN
程序中使用的是LinearIndexParams,该结构对应的索引进行线性的、暴力(brute-force)的搜索。
其他的还有基于kd树的索引。
KNN算法与Kd树
kd树原理比较复杂。。。。。。以后有时间再看。。。。。。。。
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/features2d/features2d.hpp>
#include<opencv2/xfeatures2d/nonfree.hpp>
#include<iostream>
using namespace std;
using namespace cv;
<