opencv学习——SIFT和SURF

本文详细介绍了SIFT(尺度不变特征变换)和SURF(加速稳健特征)算法,包括SIFT的尺度空间极值检测、关键点定位、方向参数指定和关键点描述符的创建,以及SURF的快速实现和旋转不变性。SIFT算法虽然精确但计算量大,而SURF通过盒子滤波器加速了处理速度,并提供了可选的U-SURF模式。两者都在图像处理中用于关键点检测和描述,但SURF在速度上有优势。
摘要由CSDN通过智能技术生成

1、SIFT
[SIFT参考]
(http://blog.csdn.net/chuhang_zhqr/article/details/50890546)
原理:在前面两节我们学习了一些角点检测技术,比如Harris 等。它们具有旋转不变特性,即使图片发生了旋转,我们也能找到同样的角点。很明显即使图像发生旋转之后角点还是角点。那如果我们对图像进行缩放呢?角点可能就不再是角点了。以下图为例,在一副小图中使用一个小的窗口可以检测到一个角点,但是如果图像被放大,再使用同样的窗口就检测不到角点了。所以在2004 年,D.Lowe 提出了一个新的算法:尺度不变特征变换(SIFT),这个算法可以帮助我们提取图像中的关键点并计算它们的描述符。SIFT 算法主要由四步构成。我们来逐步进行学习。
尺度空间极值检测:从上图我们可以很明显的看出来在不同的尺度空间不能使用相同的窗口检测极值点。对小的角点要用小的窗口,对大的角点只能使用大的窗口。为了达到这个目的我们要使用尺度空间滤波器。(尺度空间滤波器可以使用一些列具有不同方差_ 的高斯卷积核构成)。使用具有不同方差值_ 的高斯拉普拉斯算子(LoG)对图像进行卷积,LoG 由于具有不同的方差值_ 所以可以用来检测不同大小的斑点(当LoG 的方差_ 与斑点直径相等时能够使斑点完全平滑)。简单来说方差_ 就是一个尺度变换因子。例如,上图中使用一个小方差_ 的高斯卷积核是可以很好的检测出小的角点,而使用大方差_ 的高斯卷积核时可以很好的检测除大的角点。所以我们可以在尺度空间和二维平面中检测到局部最大值,如(x,y,), 这表示在 尺度中(x,y)点可能是一个关键点。(高斯方差的大小与窗口的大小存在一个倍数关系:窗口大小等于6 倍方差加1,所以方差的大小也决定了窗口大小)但是这个LoG 的计算量非常大,所以SIFT 算法使用高斯差分算子(DoG)来对LoG 做近似。这里需要再解释一下图像金字塔,我们可以通过减少采样(如只取奇数行或奇数列)来构成一组图像尺寸(1,0.5,0.25 等)不同的金字塔࿰

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值