采用Lowe‘s的算法选出优秀匹配点。

#include "highgui/highgui.hpp"
#include "opencv2/nonfree/nonfree.hpp"
#include "opencv2/legacy/legacy.hpp"
#include <iostream>  using namespace cv;
using namespace std;int main()
{Mat image01 = imread("C:\\Users\\Administrator\\Desktop\\1_A.jpg", 1);Mat image02 = imread("C:\\Users\\Administrator\\Desktop\\1_B.jpg", 1);imshow("p1", image01);imshow("p2", image02);//灰度图转换  Mat image1, image2;//声明表示图像的向量cvtColor(image01, image1, CV_RGB2GRAY);//将彩色图像灰度化,输出为image1cvtColor(image02, image2, CV_RGB2GRAY);//提取特征点    SiftFeatureDetector siftDetector(800);//构造SIFT特征检测器,Hessian矩阵阈值,在这里调整精度,值越大点越少,越精准  vector<KeyPoint> keyPoint1, keyPoint2;//特征点的向量siftDetector.detect(image1, keyPoint1);//检测SIFT特征siftDetector.detect(image2, keyPoint2);//特征点描述,为下边的特征点匹配做准备    SiftDescriptorExtractor SiftDescriptor;//构造SIFT描述子提取器Mat imageDesc1, imageDesc2;//声明表示图像的向量SiftDescriptor.compute(image1, keyPoint1, imageDesc1);//提取SIFT描述子SiftDescriptor.compute(image2, keyPoint2, imageDesc2);FlannBasedMatcher matcher;//构造匹配器vector<vector<DMatch> > matchePoints;//匹配点的向量vector<DMatch> GoodMatchePoints;//更好匹配点的向量//不太明白vector<Mat> train_desc(1, imageDesc1);matcher.add(train_desc);matcher.train();matcher.knnMatch(imageDesc2, matchePoints, 2);cout << "total match points: " << matchePoints.size() << endl;//一共的匹配点数// Lowe's algorithm,获取优秀匹配点for (int i = 0; i < matchePoints.size(); i++){if (matchePoints[i][0].distance < 0.6 * matchePoints[i][1].distance)//如果最近的距离除以次近的距离得到的比率ratio少于某个阈值T,则接受这一对匹配点{GoodMatchePoints.push_back(matchePoints[i][0]);}}Mat first_match;drawMatches(//使用函数 drawMatches来绘制检测到的匹配点image02, keyPoint2, //第一幅图像及其特征点image01, keyPoint1, //第二幅图像及其特征点GoodMatchePoints, //匹配结果first_match//生成的图像);imshow("first_match ", first_match);imwrite("C:\\Users\\Administrator\\Desktop\\first_match.jpg", first_match);waitKey();return 0;
}

输入图像:

输出图像:

匹配点明显减少

带有Lowe’s算法的SIFT特征提取和匹配相关推荐

  1. 烟雾环境下对RGB图SIFT特征提取,匹配及深度图有效值的影响

    烟雾环境下对RGB图SIFT特征提取,匹配及深度图有效值的影响 文章目录 烟雾环境下对RGB图SIFT特征提取,匹配及深度图有效值的影响 1 环境配置 1.1 opencv_contrib 1.2 M ...

  2. SIFT特征提取和匹配

    一.sift特征原理部分: SIFT特征详解 - Brook_icv - 博客园 (cnblogs.com) sift特征提取算法_July_Zh1的博客-CSDN博客_sift特征提取算法 二.si ...

  3. OpenCV实现SIFT特征提取与匹配

    前言 本文介绍如何利用OpenCV从两幅图像中提取定位精度较高的尺度不变特征变换(SIFT)特征,并结合特征匹配方法建立两幅图像的特征对应关系. 1. 程序架构 利用MFC实现了简易的Demo程序以便 ...

  4. SIFT特征提取算法总结

    转自:http://www.jellon.cn/index.php/archives/374 一.综述 Scale-invariant feature transform(简称SIFT)是一种图像特征 ...

  5. 计算机视觉——SIFT特征提取与检索+匹配地理标记图像+RANSAC算法

    SIFT特征提取与检索 1. SIFT算法 1.1 基本概念 1.2 SIFT算法基本原理 1.2.1 特征点 1.2.2 尺度空间 1.2.3 高斯函数 1.2.4 高斯模糊 1.2.5 高斯金字塔 ...

  6. 图像特征提取与匹配——SIFT算法

    图像特征提取与匹配--SIFT算法 尺度不变特征转换(Scale-invariant feature transform 或 SIFT)是一种用来侦测与描述影像中局部性特征的算法,它在空间尺度中寻找极 ...

  7. SIFT算法详解——图像特征提取与匹配

    文章目录 前言 一.建立高斯差分金字塔 1.建立高斯金字塔 2.建立高斯差分金字塔 3.建塔过程中参数的设定及相关细节问题 二.关键点(key points)位置确定 1.阈值化 2.在高斯差分金字塔 ...

  8. 基于sift特征提取的图像配准算法matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 SIFT 是一种从图像中提取独特不变特征的方法,其特点为基于图像的一些局部特征,而与图像整体的大小和 ...

  9. sift特征提取算法

    简介 SIFT算法是用来提取图像局部特征的经典算法,SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向.SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音 ...

  10. 计算机视觉(二)HARRIS角点检测算法与SIFT

    文章目录 前言 一.HARRIS角点检测算法 1.什么是角点(corner points) 2.角点检测算法的基本思想 3.什么是好的角点检测算法 4.角点特征的数学刻画 5.度量角点响应 6.HAR ...

最新文章

  1. bash脚本【一】——批量处理文件
  2. Mybatis二级缓存原理
  3. 《研磨设计模式》chap14 迭代器模式(3) 举例
  4. JavaScript——易班优课YOOC课群在线测试自动答题解决方案(五)简单插件
  5. centos设置服务开机启动
  6. 第四章 Tomcat服务器的安装及配置2
  7. 网络流--最大流--POJ 1273 Drainage Ditches
  8. 操作系统——实验壹——熟悉Linux基础命令及进程管理
  9. 媒体控件的暂停与播放 0130 winform
  10. * Dijkstra 堆优化
  11. Android图片加载之初步认识bitmap
  12. 算法与数据结构 第1章 当我们谈论算法的时候,我们在谈论什么?
  13. matlab求两个向量均值,matlab求两个总体的均值向量和协方差矩阵
  14. ESD笔记(二)_ESD测试
  15. 解析函数的孤立奇点-复变函数
  16. 浙大玉泉校区-武林门民航售票处-萧山机场
  17. 【学习方法】无论学什么东西,三个步骤:①大致粗通 ②重点精通 ③融会贯通...
  18. win10家庭版系统 修改docker为国内镜像
  19. Android O(SDK 8.0)新特性,刘海屏
  20. 【调剂】苏州科技大学电子与信息工程学院2021年硕士研究生招生第二批调剂信息公告...

热门文章

  1. 同一个局域网内如何共享文件夹(含共享打印机操作方法)
  2. 海森堡量子力学与计算机,量子力学诞生后的120年,没有人真正懂他
  3. (二)泛函分析(江泽坚)习题解答
  4. Maven第8篇:按需构建
  5. 远程计算机桌面图标不见了怎么办,网络连接图标不见了原因有哪些【解决方法】...
  6. 一款简单好用的开源文档管理系统
  7. SEO优化:关于网站降权的方方面面!!!
  8. 计算机max函数的格式,Word怎么输入Max公式
  9. 花几分钟轻松搞定快速排序算法
  10. 用Python写糖豆人小游戏 你学“废”了么?