#include <opencv2/xfeatures2d/nonfree.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/calib3d/calib3d.hpp>
#include <iostream> using namespace cv;
using namespace std; int main(int argc, char** argv)
{
Mat img1 = imread(argv[]);
Mat img2 = imread(argv[]);
vector<KeyPoint> keypoints_1, keypoints_2;
Mat descriptor_1, descriptor_2;
Ptr<Feature2D> sift = xfeatures2d::SIFT::create(, , 0.04, ); sift->detectAndCompute(img1, noArray(), keypoints_1, descriptor_1);
sift->detectAndCompute(img2, noArray(), keypoints_2, descriptor_2);
cout<< keypoints_1.size()<<" "<<keypoints_2.size()<<endl;
Mat outimg1;
drawKeypoints(img1, keypoints_1, outimg1, Scalar::all(-), DrawMatchesFlags::DEFAULT);
imshow("KeyPoint", outimg1); vector<DMatch> matches;
vector<vector<DMatch>> knn_matches; BFMatcher matcher(NORM_L2);
matcher.knnMatch(descriptor_1, descriptor_2, knn_matches, ); for (size_t r = ; r < knn_matches.size(); ++r)
{
if (knn_matches[r][].distance > 0.8*knn_matches[r][].distance ) continue;
matches.push_back(knn_matches[r][]);
} Mat img_match;
Mat img_goodmatch;
drawMatches (img1, keypoints_1, img2, keypoints_2, matches, img_goodmatch);
imshow("good match", img_goodmatch);
waitKey(); return ; }

输入两张图像

提取sift特征点

使用knnmatch进行最近邻匹配

最新文章

  1. simvision使用
  2. [原] Intellij IDEA开发Android,祝还在使用eclipse的早日脱离苦海
  3. SpringMVC中向服务器传递时间参数时出现的问题
  4. Java 实现导出excel表 POI
  5. 20145236 《Java程序设计》第4周学习总结
  6. C高级 服务器内核分析和构建 (一)
  7. 利用apktool反编译apk
  8. 网站资料收集 主要查看js的学习部分
  9. 基于visual Studio2013解决算法导论之053图的邻接表表示
  10. SQL SERVER 内存分配及常见内存问题(2)——DMV查询
  11. oracle数据库一些用户管理语句
  12. 基础教程:ASP.NET Core 2.0 MVC筛选器
  13. 原子动作检测 A Better Baseline for AVA
  14. HttpClient参观记:.net core 2.2 对HttpClient到底做了什么?
  15. 运维seq语法
  16. 最简单的java浏览器
  17. Spring Mvc和Spring Boot读取Profile方式
  18. 盘点 React 16.0 ~ 16.5 主要更新及其应用
  19. Sql语句内功心法
  20. H5相关网址

热门文章

  1. Android开发真机测试方法 (转)
  2. 使用Socket抓取网页源码
  3. 【视频】ffmpeg mov mp4 m3u8 ts
  4. 雪花算法-snowflake
  5. httpClient创建对象、设置超时
  6. 使用 requests 发送 GET 请求
  7. Github上star数超1000的Android列表控件
  8. flask获取传入参数的两种方式
  9. N76E003的定时器/计数器 0和1
  10. JavaScript Promise迷你书(中文版)