【计算机视觉、关键点检测、特征提取和匹配】基于SIFT、PCA-SIFT和GLOH算法在不同图像之间建立特征对应关系,并实现点匹配算法和图像匹配(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文章


💥1 概述

摘要 - 特征检测和匹配是许多计算机视觉应用的重要组成部分。它用于各种应用,例如将两幅图像对齐,以便无缝地拼接成一个复合的镶嵌图像,或者建立一组密集的对应关系,以构建3D模型。但是,选择要比较和匹配图像的特征仍然是一个持续搜索的领域。已经有许多算法用于此目的。在这个任务中,我们尝试实现和评估一些算法,如HARRIS、MSER、SIFT、PCA-SIFT、GLOH,然后我们在symfeat数据集中测试我们的算法,该数据集包含展示了光照、年龄和渲染风格等各种戏剧性变化的图像对。

关键词:计算机视觉、关键点检测、特征提取和匹配

图像匹配是计算机视觉中许多问题的基本方面,包括对象或场景识别、从多幅图像解决3D结构、立体对应、运动跟踪和内容基图像检索。在较早的年份提出了许多图像匹配方法,其中一些使用全局特征,而另一些使用局部特征。全局特征在处理部分可见性和多余特征时存在困难。为了处理部分可见性和图像旋转、缩放等转换,基于局部特征的特征变得更加重要。

基于局部特征的图像匹配任务通常以关键点的发现开始,然后在兴趣点处继续进行特征提取。最后,在最后一步,比较从两幅图像中提取的特征。这些点是根据它们的相似性值进行匹配。

图1展示了基于局部特征的图像匹配示例,其中需要计算两幅图像的相似度。首先,从两幅图像中提取局部特征。然后,在图像中匹配这些局部特征。在图1中,匹配后有三对特征。定义这两幅图像之间相似度最简单的方法是使用从两幅图像中提取的特征之间的最近邻分配。

另一个使用相同思想的例子是考虑一个标准的CBIR系统。在标准的CBIR系统中,从单个图像中自动检测出兴趣点,然后在这些兴趣点处计算特征向量。在搜索步骤中,从查询图像中提取的每个特征向量都为与查询特征向量相似的匹配参考特征投票评分。
在本次任务中,我们尝试构建一个系统,能够检测图像中的关键点,从中提取不变的特征,并最终进行如上所述的特征匹配。我们首先描述并实现了三种用于检测关键点的算法,分别是HARRIS、MSER和DOG。然后,在找到图像中的关键点后,我们试图从这些关键点中提取出有区分性的特征。我们研究并尝试实现了另外三种算法,分别是SIFT、PCA-SIFT和GLOH。接着,我们讨论了如何在不同图像之间建立特征对应关系,并实现了点匹配算法和图像匹配算法。最后,我们将我们的结果与matlab特征检测进行了比较。本文的剩余部分结构如下。下一节详细描述了我们实现的算法。实验结果、总结结果、备注和未来展望分别在第3节和第4节中呈现。 

📚2 运行结果

部分代码:
%%SIFT    
%%SET ENUM VALUES 
keypointDetection = KeyPointDetector.HARRIS;%HARRIS
featureExtraction = FeatureExtractor.SIFT;%SIFT
match_images(i,keypointDetection,featureExtraction,alsoEvaluate,treshold);

keypointDetection = KeyPointDetector.MSER;%MSER,
featureExtraction = FeatureExtractor.SIFT;%SIFT
match_images(i,keypointDetection,featureExtraction,alsoEvaluate,treshold);

keypointDetection = KeyPointDetector.DOG;%DOG
featureExtraction = FeatureExtractor.SIFT;%SIFT
match_images(i,keypointDetection,featureExtraction,alsoEvaluate,treshold);
%%PCA SIFT
keypointDetection = KeyPointDetector.HARRIS;%HARRIS
featureExtraction = FeatureExtractor.PCASIFT;%PCASIFT
match_images(i,keypointDetection,featureExtraction,alsoEvaluate,treshold);

keypointDetection = KeyPointDetector.MSER;%MSER
featureExtraction = FeatureExtractor.PCASIFT;%PCASIFT
match_images(i,keypointDetection,featureExtraction,alsoEvaluate,treshold);

keypointDetection = KeyPointDetector.DOG;%,DOG
featureExtraction = FeatureExtractor.PCASIFT;%PCASIFT
match_images(i,keypointDetection,featureExtraction,alsoEvaluate,treshold);

%%GLOH
keypointDetection = KeyPointDetector.HARRIS;%HARRIS
featureExtraction = FeatureExtractor.GLOH;%GLOH
match_images(i,keypointDetection,featureExtraction,alsoEvaluate,treshold);

keypointDetection = KeyPointDetector.MSER;%MSER
featureExtraction = FeatureExtractor.GLOH;%GLOH
match_images(i,keypointDetection,featureExtraction,alsoEvaluate,treshold);

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、数据、文章

  • 34
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值