SIFT算法步骤梳理

简介:SIFT算法是检测和描述局部特征的一种方法,具有尺度不变性,对于光线,噪声等的容忍度相当高。即便少数几个物体也可以产生大量SIFT特征。

SIFT算法实质上是在不同尺度空间上查找关键点,并计算出关键点的方向。

算法步骤:

1.构建尺度空间

  •  利用高斯核来构建
    • 高斯核是唯一可以产生多尺度空间的核,也是唯一线性核,利用高斯核对图像模糊处理不会引入其他噪声。
    • 高斯核函数:

  • 输入图像通过高斯核函数连续的对尺度进行参数变换,最终得到多尺度空间序列。图像中某一尺度的空间函数由高斯函数和原输入图像I(x,y)卷积得出:

  • 高斯金字塔
    • 模仿图像的不同尺度
    • 生成步骤:高斯平滑-->对图像做下采样(一般先将图像扩大一倍,在扩大的图像基础上构建高斯金字塔,然后您对该尺寸下图像进行高斯模糊,几幅模糊的图像集合构成了一个八度,然后对该八度下倒数第三张图片进行下采样,长和宽分别缩短一倍,图像面积变为原来的四分之一。以此类推)
    • 为什么选倒数第三张进行下采样?为了保持尺度空间的连续性,根据下图公式可以计算得出第o组第S层的图像尺度,可以发现下一组的第o层图像恰好和上一组倒数第三张图一致,所以每一组的第0张图像只需要用上一层的倒数第三张进行下采样即可。

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SIFT算法是一种用于图像匹配和目标识别的特征提取方法,它的步骤如下: 1. 尺度空间构建:使用高斯滤波器对原始图像进行不同尺度的平滑处理,得到高斯金字塔。 2. 关键点检测:对每个尺度空间的高斯金字塔进行极值点检测,得到稳定的关键点。 3. 关键点定位:对关键点进行精确定位,即确定它的位置、尺度和方向。 4. 方向分配:为每个关键点分配一个主方向,用于后面的特征描述。 5. 特征描述:在每个关键点周围的邻域内计算描述子,即对该区域的梯度方向和幅值进行统计,生成一个向量,描述该区域的特征。 6. 特征匹配:使用某种距离度量方法,比如欧氏距离或汉明距离,对两张图像的特征进行匹配,找到它们之间的对应关系。 在MATLAB中实现SIFT算法的具体步骤如下: 1. 使用imresize函数对原始图像进行不同尺度的缩放,得到高斯金字塔。 2. 对每个尺度的高斯金字塔进行极值点检测,得到关键点。 3. 对关键点进行精确定位,即确定它的位置、尺度和方向。 4. 为每个关键点分配一个主方向,用于后面的特征描述。 5. 在每个关键点周围的邻域内计算描述子,即对该区域的梯度方向和幅值进行统计,生成一个向量,描述该区域的特征。 6. 对两张图像的特征进行匹配,找到它们之间的对应关系。 需要注意的是,SIFT算法的实现比较复杂,需要对图像处理和数学知识有一定的掌握。此外,MATLAB也提供了一些SIFT算法的函数,如vl_sift函数,可以方便地实现SIFT算法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值