6-sift特征匹配

1-

http://blog.csdn.net/dcrmg/article/details/52578732

2-

#include "highgui/highgui.hpp"
#include "opencv2/nonfree/nonfree.hpp"
#include "opencv2/legacy/legacy.hpp"

using namespace cv;

int main(int argc, char *argv[])
{
Mat image01 = imread("1.jpg");
Mat image02 = imread("2.jpg");
Mat image1, image2;
GaussianBlur(image01, image1, Size(3, 3), 0.5);
GaussianBlur(image02, image2, Size(3, 3), 0.5);

//提取特征点
SiftFeatureDetector siftDetector(30); //限定提起前15个特征点
vector<KeyPoint> keyPoint1, keyPoint2;
siftDetector.detect(image1, keyPoint1);
siftDetector.detect(image2, keyPoint2);

//绘制特征点
drawKeypoints(image1, keyPoint1, image1, Scalar::all(-1), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
drawKeypoints(image2, keyPoint2, image2, Scalar::all(-1), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);
namedWindow("KeyPoints of image1", 0);
namedWindow("KeyPoints of image2", 0);

imshow("KeyPoints of image1", image1);
imshow("KeyPoints of image2", image2);

//特征点描述,为下边的特征点匹配做准备
SiftDescriptorExtractor siftDescriptor;
Mat imageDesc1, imageDesc2;
siftDescriptor.compute(image1, keyPoint1, imageDesc1);
siftDescriptor.compute(image2, keyPoint2, imageDesc2);

//特征点匹配并显示匹配结果
BruteForceMatcher<L2<float>> matcher;
vector<DMatch> matchePoints;
matcher.match(imageDesc1, imageDesc2, matchePoints, Mat());
Mat imageOutput;
drawMatches(image01, keyPoint1, image02, keyPoint2, matchePoints, imageOutput);
namedWindow("Mathch Points", 0);
imshow("Mathch Points", imageOutput);
waitKey();
return 0;
}

3-

时间: 2024-08-04 14:49:51

6-sift特征匹配的相关文章

利用RANSAC算法筛选SIFT特征匹配

关于RANSAC算法的基本思想,可从网上搜索找到,这里只是RANSAC用于SIFT特征匹配筛选时的一些说明. RANSAC算法在SIFT特征筛选中的主要流程是: (1) 从样本集中随机抽选一个RANSAC样本,即4个匹配点对 (2) 根据这4个匹配点对计算变换矩阵M (3) 根据样本集,变换矩阵M,和误差度量函数计算满足当前变换矩阵的一致集consensus,并返回一致集中元素个数 (4) 根据当前一致集中元素个数判断是否最优(最大)一致集,若是则更新当前最优一致集 (5) 更新当前错误概率p,

OpenCV2.4.4中调用SIFT特征检测器进行图像匹配

OpenCV中一些相关结构说明: 特征点类: class KeyPoint { Point2f pt; //坐标 float size; //特征点邻域直径 float angle; //特征点的方向,值为[0,360),负值表示不使用 float response; // int octave; //特征点所在的图像金字塔的组 int class_id; //用于聚类的id } 存放匹配结果的结构: 1 struct DMatch 2 { 3 //三个构造函数 4 DMatch(): quer

【特征匹配】SIFT原理之KD树+BBF算法解析

继上一篇中已经介绍了SIFT原理点击打开链接,最后得到了一系列特征点,每个特征点对应一个128维向量.假如现在有两副图片都已经提取到特征点,现在要做的就是匹配上相似的特征点. 相似性查询有两种基本方式:1.范围查询:即给点查询点和查询阈值,从数据集中找出所有与查询点距离小于阈值的点. 2.K近邻查询:给点查询点及正整数K,从数据集中找到与查询点最近的K个数据,当K=1时,就是最近邻查询. 特征匹配算子可以分为两类:1.穷举法:即将数据集中的点与查询点逐一计算距离,如果图1提取到N1个特征点,图2

【特征匹配】SIFT原理与C源码剖析

关于SIFT的原理已经有很多大牛的博客上做了解析,本文重点将以Rob Hess等人用C实现的代码做解析,结合代码SIFT原理会更容易理解.一些难理解点的用了☆标注. 欢迎大家批评指正! SIFT(Scale-invariant feature transform)即尺度不变特征转换,提取的局部特征点具有尺度不变性,且对于旋转,亮度,噪声等有很高的稳定性. SIFT特征点提取 本文将以下函数为参照顺序介绍SIFT特征点提取与描述方法. 1.图像预处理 2.构建高斯金字塔(不同尺度下的图像) 3.生

[翻译]鲁棒的尺度不变特征匹配在遥感图像配准中应用(Robust Scale-Invariant Feature Matching for Remote Sensing Image Registration)

李乔亮,汪国有,刘建国,会员,IEEE,和陈少波 2008年8月7日接收;2008年10月22日和2008年11月27日修改.2009年2月2日首版:当前版本出版于2009年4月17日.本项工作由中国国家基础研究项目60672060资助. 中国湖北省武汉市华中科技大学模式识别与人工智能国家重点实验室,邮编430074(邮箱:[email protected];   [email protected];  [email protected];  [email protected]) 数字对象识别编

特征匹配

计算机视觉课堂笔记 回顾:特征提取中分为点(Harris等),线(Canny算子),区域(MSER)等特征的提取. 相应的特征匹配就会有特征点匹配,直线匹配,曲线匹配,区域匹配. 而在众多研究中以点匹配居多,点匹配的基本原则:利用图像点周围的信息来描述点,如灰度信息,颜色信息,梯度信息等,然后进行 相似性度量. 点匹配典型方法: 基于灰度分布的匹配:Cross-correlation: 基于梯度分布的匹配:SIFT:Daisy descriptor: 其他匹配方法:Eigenvector:ICP

特征提取(Detect)、特征描述(Descriptor)、特征匹配(Match)的通俗解释

特征匹配(Feature Match)是计算机视觉中很多应用的基础,所以花一些时间去深入理解这个概念是不为过的.本文希望通过一种通俗易懂的方式来阐述特征匹配这个过程,以及在过程中遇到的一些问题. 概念理解: 假设这样的一个场景,小明和小小明都在看一个图片,但是他们想知道他们看的是否是同一幅图片,于是他们就通过电话描述这个图片,来判断是否是同一个图片.比如说有下面两个图片                对话1: 小白:我的图片里面有五个很明显的特征,分别在图像的上下左右中五个位置. 小黑:我的图片

特征匹配篇

1. ORB特征匹配 BruteForce-Hamming匹配 //使用ORB特征匹配两张图片,并进行运行时间,对称性测试,ratio测试 #include <iostream> #include <ctime> //#include <dirent.h> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/non

基于SIFT特征的全景图像拼接

基于SIFT特征的全景图像拼接 分类: image Machine learning2013-07-05 13:33 2554人阅读 评论(3) 收藏 举报 基于SIFT特征的全景图像拼接 分类: 计算机视觉/OpenCV2013-07-04 21:43 91人阅读 评论(0) 收藏 举报 主要分为以下几个步骤: (1) 读入两张图片并分别提取SIFT特征 (2) 利用k-d tree和BBF算法进行特征匹配查找 (3) 利用RANSAC算法筛选匹配点并计算变换矩阵 (3) 图像融合 SIFT算

SIFT特征原理简析(HELU版)

SIFT(Scale-Invariant Feature Transform)是一种具有尺度不变性和光照不变性的特征描述子,也同时是一套特征提取的理论,首次由D. G. Lowe于2004年以<Distinctive Image Features from Scale-Invariant Keypoints[J]>发表于IJCV中.开源算法库OpenCV中进行了实现.扩展和使用. 本文主要依据原始论文和网络上相关专业分析,对SIFT特征提取的算法流程进行简单分析.由于涉及到的知识概念较多,本人