特征匹配的结果会得到两个特征集合的对应关系列表。第一组特征集被称为训练集,第二组被称为查询集。FLANN在调用匹配函数之前,为了提高匹配速度,训练一个匹配器。训练阶段是为了优化cv::FlannBasedMatcher的性能。train类将会建立特征集的索引树。
而对于暴力匹配,train类不需要做什么,因为没有预处理。
FLANN和SURF搭配匹配特征点
knnMatch()找每个特征的K近邻匹配
效率不够高,帧率很低。参考《opencv3编程入门》
#include<opencv2/opencv.hpp>
#include<opencv2/features2d/features2d.hpp>
#include<opencv2/xfeatures2d/nonfree.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
using namespace std;
using namespace cv;