opencv调用GMS匹配的头文件
时间: 2023-06-30 22:13:24 浏览: 92
opencv头文件以兹互勉
4星 · 用户满意度95%
要使用GMS匹配算法,您需要先下载并安装GMS匹配算法的相关代码库,然后在OpenCV中调用相关的头文件。以下是使用OpenCV调用GMS匹配算法的头文件示例:
```cpp
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/features2d.hpp>
#include <opencv2/xfeatures2d.hpp>
#include <opencv2/calib3d.hpp>
#include "gms_matcher.h"
using namespace cv;
using namespace std;
using namespace cv::xfeatures2d;
using namespace gms;
int main(int argc, char** argv)
{
// 读取图像
Mat img1 = imread("img1.jpg");
Mat img2 = imread("img2.jpg");
// 提取特征点和特征描述符
Ptr<SIFT> sift = SIFT::create();
vector<KeyPoint> kp1, kp2;
Mat desc1, desc2;
sift->detectAndCompute(img1, noArray(), kp1, desc1);
sift->detectAndCompute(img2, noArray(), kp2, desc2);
// GMS匹配
GMSMatcher gms(kp1, img1.size(), kp2, img2.size());
vector<DMatch> matches;
gms.GetMatches(kp1, desc1, kp2, desc2, matches);
// 绘制匹配结果
Mat img_matches;
drawMatches(img1, kp1, img2, kp2, matches, img_matches);
imshow("Matches", img_matches);
waitKey(0);
return 0;
}
```
在上面的示例代码中,我们首先使用OpenCV提供的SIFT算法提取图像的特征点和特征描述符。然后,我们使用GMSMatcher类进行特征点匹配,并使用drawMatches函数绘制匹配结果。最后,我们使用imshow函数显示匹配结果。请注意,为了使用GMSMatcher类,我们需要包含gms_matcher.h头文件。
阅读全文