【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
来源:互联网 发布:网络热点视频 编辑:程序博客网 时间:2024/05/18 02:46
【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
http://blog.csdn.net/xiaowei_cqu/article/details/8067881
《SIFT原理与源码分析》系列文章索引:http://blog.csdn.net/xiaowei_cqu/article/details/8069548
尺度空间理论
尺度越大图像越模糊。
为什么要讨论尺度空间?
图像的尺度空间表达就是图像在所有尺度下的描述。
尺度空间表达与金字塔多分辨率表达
高斯模糊
高斯核是唯一可以产生多尺度空间的核(《Scale-space theory: A basic tool for analysing structures at different scales》)。一个图像的尺度空间L(x,y,σ) ,定义为原始图像I(x,y)与一个可变尺度的2维高斯函数G(x,y,σ)卷积运算。
二维空间高斯函数:
尺度空间:
尺度是自然客观存在的,不是主观创造的。高斯卷积只是表现尺度空间的一种形式。
二维空间高斯函数是等高线从中心成正太分布的同心圆:
分布不为零的点组成卷积阵与原始图像做变换,即每个像素值是周围相邻像素值的高斯平均。一个5*5的高斯模版如下所示:
高斯模版是圆对称的,且卷积的结果使原始像素值有最大的权重,距离中心越远的相邻像素值权重也越小。
在实际应用中,在计算高斯函数的离散近似时,在大概3σ距离之外的像素都可以看作不起作用,这些像素的计算也就可以忽略。所以,通常程序只计算(6σ+1)*(6σ+1)就可以保证相关像素影响。
高斯模糊另一个很厉害的性质就是线性可分:使用二维矩阵变换的高斯模糊可以通过在水平和竖直方向各进行一维高斯矩阵变换相加得到。
O(N^2*m*n)次乘法就缩减成了O(N*m*n)+O(N*m*n)次乘法。(N为高斯核大小,m,n为二维图像高和宽)
其实高斯这一部分只需要简单了解就可以了,在OpenCV也只需要一句代码:
我这里详写了一下是因为这块儿对分析算法效率比较有用,而且高斯模糊的算法真的很漂亮~金字塔多分辨率
金字塔是早期图像多尺度的表示形式。图像金字塔化一般包括两个步骤:使用低通滤波器平滑图像;对平滑图像进行降采样(通常是水平,竖直方向1/2),从而得到一系列尺寸缩小的图像。
上图中(a)是对原始信号进行低通滤波,(b)是降采样得到的信号。
而对于二维图像,一个传统的金字塔中,每一层图像由上一层分辨率的长、宽各一半,也就是四分之一的像素组成:
多尺度和多分辨率
尺度空间表达和金字塔多分辨率表达之间最大的不同是:
- 尺度空间表达是由不同高斯核平滑卷积得到,在所有尺度上有相同的分辨率;
- 而金字塔多分辨率表达每层分辨率减少固定比率。
DoG(Difference of Gaussian)
高斯拉普拉斯LoG金字塔
高斯差分DoG金字塔
金字塔构建
构建高斯金字塔
构建DoG金字塔
至此,SIFT第一步就完成了。参见《SIFT原理与源码分析》
(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu 未经允许请勿用于商业用途)
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- SIFT原理与源码分析:DoG尺度空间构造
- SIFT原理与源码分析:DoG尺度空间构造
- SIFT算法原理与OpenCV源码分析2:高斯差分DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析:1.DoG尺度空间构造
- [C++ 从入门到放弃-09]C++STL之queue队列容器
- codeforces 113D&bzoj 3270
- C# WinForm窗体及其控件自适应各种屏幕分辨率
- 流媒体系统安装过程中如何关闭指定端口的防火墙
- QComboBox
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 电子商务与传统商务比有哪些特点?什么是SSL安全协议?SSL安全协议主要提供的服务?
- 【CSS 走进web】Web基础 网页的血肉CSS
- 【简记】Operating System—— memory management(分页,分段,页表大小计算)
- CentOS7安装PostgreSQL9.6
- 如何在Service层创建虚拟的根节点
- Mybatis排序无效问题解决方法
- 优悦家装Android企信逻辑及其流程梳理
- mysql按日期时间分表