特征点匹配算法c++代码实现
时间: 2023-07-29 19:10:23 浏览: 61
特征点匹配算法一般包括以下步骤:
1. 对两张图片进行特征点提取
2. 对提取出的特征点进行特征描述子生成
3. 对两张图片的特征点进行匹配
这里提供一个基于OpenCV库的特征点匹配算法实现,包括SURF特征点提取和FLANN特征点匹配:
```
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat img1 = imread("img1.png", IMREAD_GRAYSCALE);
Mat img2 = imread("img2.png", IMREAD_GRAYSCALE);
//定义SURF特征检测器和描述符提取器
Ptr<FeatureDetector> detector = SURF::create();
Ptr<DescriptorExtractor> descriptor = SURF::create();
//定义FLANN特征匹配器
FlannBasedMatcher matcher;
//定义特征点和描述符
vector<KeyPoint> keypoints1, keypoints2;
Mat descriptors1, descriptors2;
//检测特征点和描述符
detector->detect(img1, keypoints1);
detector->detect(img2, keypoints2);
descriptor->compute(img1, keypoints1, descriptors1);
descriptor->compute(img2, keypoints2, descriptors2);
//进行特征点匹配
vector<DMatch> matches;
matcher.match(descriptors1, descriptors2, matches);
//画出匹配结果
Mat img_matches;
drawMatches(img1, keypoints1, img2, keypoints2, matches, img_matches);
imshow("Matches", img_matches);
waitKey(0);
return 0;
}
```
上述代码中,img1、img2分别为待匹配的两张图片,通过SURF特征检测器和描述符提取器提取出特征点和描述符,然后通过FLANN特征匹配器进行特征点匹配,最后通过drawMatches函数将匹配结果画出来。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)