drawMatches显示怎么匹配opencv
时间: 2024-02-01 09:13:27 浏览: 105
opencv图片匹配方法
在OpenCV中,可以使用`cv::drawMatches`函数来可视化匹配。这个函数需要四个参数:
- 输入图像1
- 输入图像1的关键点
- 输入图像2
- 输入图像2的关键点
- 匹配向量,包含了两个图像中匹配关键点之间的对应关系。
下面是一个简单的例子:
```c++
cv::Mat image1 = cv::imread("image1.jpg");
cv::Mat image2 = cv::imread("image2.jpg");
cv::Ptr<cv::ORB> orb = cv::ORB::create();
std::vector<cv::KeyPoint> keypoints1, keypoints2;
cv::Mat descriptors1, descriptors2;
orb->detectAndCompute(image1, cv::Mat(), keypoints1, descriptors1);
orb->detectAndCompute(image2, cv::Mat(), keypoints2, descriptors2);
cv::BFMatcher matcher(cv::NORM_HAMMING);
std::vector<cv::DMatch> matches;
matcher.match(descriptors1, descriptors2, matches);
cv::Mat matchImage;
cv::drawMatches(image1, keypoints1, image2, keypoints2, matches, matchImage);
cv::imshow("Matches", matchImage);
cv::waitKey(0);
```
这个例子中使用ORB检测和计算关键点和描述符,使用Brute-Force匹配器匹配两个图像中的描述符。然后通过`cv::drawMatches`函数可视化匹配结果。
阅读全文