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 等)不同的金字塔
opencv学习——SIFT和SURF
最新推荐文章于 2023-11-10 10:32:48 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)