最近看图像匹配的内容,特地比较了暴力匹配和基于FLANN的匹配方法,按照理论上讲,FLANN更快一些,但是程序结果显示暴力匹配的方法更快,由于我只用了两幅图像,可能是实验样本太少的缘故吧,代码如下:
#include<iostream>
#include<opencv2/core.hpp>
#include<opencv2/features2d.hpp>
#include<opencv2/highgui.hpp>
#include<chrono>
using namespace std;
using namespace cv;
int main()
{
Mat left=imread("/home/***/EuRoC/mav0/cam0/data/1403715273262142976.png",0);
Mat right=imread("/home/***/EuRoC/mav0/cam1/data/1403715273262142976.png",0);
std::vector<KeyPoint> keypoints_left,keypoints_right;
Mat descriptors_left,descriptors_right;
std::vector<DMatch> feature_match;
Ptr<ORB> orb=ORB::create();
orb->detect(left,keypoints_left);
orb->detect(right,keypoints_right);
orb->compute(left,keypoints_left,descriptors_left);
orb->compute(right,keypoints_right,descriptors_right);
cout<<keypoints_left.size()<<endl;
cout<<key