使用sift特征点进行knn最近邻匹配
#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进行最近邻匹配
最新文章
- 【Big Data】HADOOP集群的配置(一)
- Weblogic反序列化漏洞补丁更新解决方案
- c#:如何处理对对象进行深度拷贝
- 关于web前端的学习路线
- 关于在windows下使用mingw并行编译wxwidgets时的错误
- Python控制流语句(if,while,for)
- 在线最优化求解(Online Optimization)之二:截断梯度法(TG)
- web服务器分析与设计(四)
- FineUploader 学习笔记
- Day1 - Python基础1 介绍、基本语法、流程控制
- WebGIS在行业中应用的演变
- 【考虑周全+数学变形】【11月赛】Is it a fantastic matrix?
- HDOJ3743<;分治>;
- Xmpp实现简单聊天系列 --- ①openfire部署
- cloud-init 典型应用 - 每天5分钟玩转 OpenStack(174)
- [转载] java中静态代码块的用法 static用法详解
- AntiXSS的作用
- Vue框架axios请求(类似于ajax请求)
- 评估指标【交叉验证&;ROC曲线】
- 如何写好CSS系列之表单(form)
热门文章
- nginx配置:location配置方法及实例
- 7 -- Spring的基本用法 -- 12... Spring 3.0 提供的表达式语言(SpEL)
- Apache安全配置基线指导
- session会话保持
- jQuery给动态添加生成的元素绑定事件的方法
- Python学习(23):Python面向对象(1)速成
- Python六大开源框架对比:Web2py略胜一筹(转)
- Qt编写机房安全作业预警系统
- LeetCode 32 Longest Valid Parentheses(最长合法的括号组合)
- sencha touch 压缩js,css遇到的问题