进行特征点匹配的一般步骤:
- 实例化特征点检测器,进行特征点检测
- 实例化描述子提取器,对计算得到特征点提取描述子
- 实例化匹配器,根据描述子进行匹配
- 筛选优秀匹配结果并绘图
下一篇博客介绍一下feature2d和xfeature2d中的各种特征点检测器和描述子提取器,有时一种算法同时拥有检测器和提取器,比如SURF
#include<opencv2/opencv.hpp>
#include <opencv2/xfeatures2d.hpp> //SIFT SURF
#include<iostream>
#include<vector>
constexpr auto path0 = "F:\\workspace\\opencv\\2_xfeature2d\\pic\\0.png";
constexpr auto path1 = "F:\\workspace\\opencv\\2_xfeature2d\\pic\\1.png";
int main() {
cv::Mat image0 = cv::imread(path0, 1);
cv::Mat image1 = cv::imread(path1, 1);
cv::imshow("image0", image0);
cv::imshow("image1", image1);
/*
step1:特征检测器
*/
cv::Ptr<cv::xfeatures2d::SURF> detector;
detector = cv::xfeatures2d::SURF::create(800); //800为海塞矩阵阈值,越大越精准
/*
-----SURF----
cv::Ptr<cv::xfeatures2d::SURF> detect