#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. 【Big Data】HADOOP集群的配置(一)
  2. Weblogic反序列化漏洞补丁更新解决方案
  3. c#:如何处理对对象进行深度拷贝
  4. 关于web前端的学习路线
  5. 关于在windows下使用mingw并行编译wxwidgets时的错误
  6. Python控制流语句(if,while,for)
  7. 在线最优化求解(Online Optimization)之二:截断梯度法(TG)
  8. web服务器分析与设计(四)
  9. FineUploader 学习笔记
  10. Day1 - Python基础1 介绍、基本语法、流程控制
  11. WebGIS在行业中应用的演变
  12. 【考虑周全+数学变形】【11月赛】Is it a fantastic matrix?
  13. HDOJ3743&lt;分治&gt;
  14. Xmpp实现简单聊天系列 --- ①openfire部署
  15. cloud-init 典型应用 - 每天5分钟玩转 OpenStack(174)
  16. [转载] java中静态代码块的用法 static用法详解
  17. AntiXSS的作用
  18. Vue框架axios请求(类似于ajax请求)
  19. 评估指标【交叉验证&amp;ROC曲线】
  20. 如何写好CSS系列之表单(form)

热门文章

  1. nginx配置:location配置方法及实例
  2. 7 -- Spring的基本用法 -- 12... Spring 3.0 提供的表达式语言(SpEL)
  3. Apache安全配置基线指导
  4. session会话保持
  5. jQuery给动态添加生成的元素绑定事件的方法
  6. Python学习(23):Python面向对象(1)速成
  7. Python六大开源框架对比:Web2py略胜一筹(转)
  8. Qt编写机房安全作业预警系统
  9. LeetCode 32 Longest Valid Parentheses(最长合法的括号组合)
  10. sencha touch 压缩js,css遇到的问题