SIFT算子(Scale Invariant Feature Transform)是David Lowe提出的一种基于尺度空间的、对图像缩放、旋转甚至仿射变换保持不变性的图像局部特征描述算子。SIFT特征提取的是极其细微、大量的特征点,即时少数物体、物体的一小部分也可以产生大量特征向量。

SIFT算法如果不考虑实时要求,是一个比较好的用于图像配准的算法,而且仅3个匹配的SIFT关键点就足以确定匹配关系。

SIFT算法用于图像配准的整个执行流程大致为:

(1)、读入初始图像,是图像转换成double类型,并使其灰度值归一化到[0, 1]之间;

(2)、高斯滤波、线性插值,使图像放大一倍;

(3)、产生高斯金字塔和高斯差分金字塔图像序列,这是最耗时的一步;Lowe建议高斯金字塔一般选择4阶,每阶选择5层。

(4)、检测高斯差分金字塔尺度空间极值点、去除低对比度和边缘不稳定的特征点,选取较小的曲率阈值或选取较大的对比度阈值均可以减少特征点的个数;应选取合适的阈值,如果图像本身太大,特征点太多,会导致内存溢出;

(5)、计算特征点幅值和方向序列;

(6)、在特征点中寻找关键点,建立梯度方向直方图,得到每个关键点的位置、尺度和方向;

(7)、产生关键点描述子序列;

(8)、根据产生的关键点描述子序列,基于欧氏距离初步得到关键点对:寻找与目标关键点欧式距离最近的前两个关键点,用这两个关键点中最近的距离与此近的距离的比值作为最近点的相似度度量similarity,如果similarity小于某个比例阈值,则接受这一对匹配点;

(9)、用hough变换对初步得到的关键点对进行再一次计算,得到最终的初始关键点对;

(10)、用RANSAC算法对初始关键点对进行精确匹配,剔除错误的匹配点,得到最终的匹配点。

图像配准----SIFT相关推荐

  1. 【图像配准】SIFT算法原理及二图配准拼接

    前言 本篇开始,将进入图像配准领域的研究. 图像拼接主要有SIFT, BRISK, ORB, AKAZE等传统机器学习算法以及SuperPoint等深度学习算法,在后续将一一进行研究和实验.本篇主要来 ...

  2. 【MATLAB教程案例27】基于matlab的图像配准算法的仿真与分析——sift,surf,kaze等

    FPGA教程目录 MATLAB教程目录 目录 1.软件版本 2.图像配准理论概述 3.基于sift特征提取的图像配准

  3. 多种图像配准方法的综合比较(KAZE、SIFT、SURF等)

    接触图像配准是从去年十月份开始的,老师要求我尽快重现一遍整个流程,这样对课题可以有一个整体的把握,而后再仔细推敲细节,甚至提出自己的想法,老师的这个思路现在觉得非常不错.自己当时选取的是SURF方法, ...

  4. 【图像配准】基于粒子群改进的sift图像配准matlab源码

    SIFT \ SIFT尺度不变特征转换,具有选择,尺度不变性.由David Lowe在1999年所发表,2004年完善总结. owe将SIFT算法分解为如下四步: \ 1. 尺度空间极值检测:搜索所有 ...

  5. 图像配准系列之“Sift特征点+薄板样条变换+FFD变换”配准方法

    上篇文章中我们讲了"Sift+TPS"的配准方法: 图像配准系列之"Sift特征点+薄板样条变换"配准方法 我们知道,TPS薄板样条变换(简称TPS变换)与FF ...

  6. 基于SIFT特征的图像配准(附Matlab源代码)

    基于SIFT特征的图像配准(附Matlab源代码) 本文先给出了采用SIFT方法进行图像配准的实验原图以及实验结果,最后附上Matlab源代码. 实验一: 实验一的图像(见图1.1)是本人自己拍摄的, ...

  7. 【图像处理】一文弄明白图像配准(SIFT)

    问题 在我的一个传统图像处理项目中用到了图像配准技术,太久都忘了,为了防止面试被问到答不上来,这里还是要简要总结下.关于图像配准的概念,在另一个问题 "13_图像拼接原理介绍" 中 ...

  8. 图像配准:从SIFT到深度学习

    图像配准(Image Registration)是计算机视觉中的基本步骤.在本文中,我们首先介绍基于OpenCV的方法,然后介绍深度学习的方法. 什么是图像配准 图像配准就是找到一幅图像像素到另一幅图 ...

  9. 干货 | 基于特征的图像配准用于缺陷检测

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 特征提取 基于特征的图像配准,具有非常广泛的应用,大致流程可以如下 ...

最新文章

  1. yolov5组件笔记
  2. Java基础总结之数组
  3. 移民申请--申请澳大利亚技术移民的职业评估有技巧(2)
  4. python调用api应用接口_Python接口测试之urllib2库应用
  5. ABC181——F - Silver Woods
  6. 纯真IP数据库格式详解
  7. java多线程模拟实现12306售票
  8. windows cmd install nscp
  9. R语言分类算法之随机森林(Random Forest)
  10. 可视化动画:数据结构和算法
  11. php手机端分页加载,移动端分页加载
  12. 咬肌边上有个滑动疙瘩_猫逆子一个:摔杯子咬箱子,时常给我甩脸子!
  13. 4. 实例palybook安装管理flume
  14. 一个简单的网页设计HTML5作业
  15. [NOI2015]荷马史诗
  16. 银盒子智慧餐厅硬件尺寸规格推荐机型
  17. 【Tableau 图表大全31】仪表板(又名仪表盘) #高阶
  18. 哪一种验证方法最好?形式验证、硬件加速还是动态仿真?
  19. dhcp服务器修改dns设置方法,dhcp服务器的dns设置方法
  20. ubuntu如何安装java jdk,Ubuntu下安装JDK图文详解

热门文章

  1. Linux那些事儿 之 戏说USB(15)设备
  2. F-LOAM:基于激光雷达的快速里程计和建图
  3. c++静态成员函数好处
  4. Squid故障与解决方法汇总
  5. 【Unity教程】创建一个完整的驾驶游戏
  6. NVME CLI -- nvme 命令查看NVME设备内部状态
  7. leetcode-440 字典序的第K小数字
  8. [.NET] 《Effective C#》快速笔记 - C# 中的动态编程
  9. dataTables常用参数
  10. javascript重置(base层)(。。。。不完整)