一、高斯金字塔(图像尺度具有不变性)

为了让尺度体现其连续性,高斯金字塔在简单降采样的基础上加上了高斯滤波。将图像金字塔每层的一张图像使用不同参数做高斯模糊,使得金字塔的每层含有多张高斯模糊图像,将金字塔每层多张图像合称为一组(Octave),金字塔每层只有一组图像,组数和金字塔层数相等,使用下列公式计算,每组含有多张(也叫层Interval)图像。另外,降采样时,高斯金字塔上一组图像的初始图像(底层图像)是由前一组图像的倒数第三张图像隔点采样得到的。

其中M,N为原图像的大小,t为塔顶图像的最小维数的对数值。如,对于大小为512512的图像,金字塔上各层图像的大小如表3.1所示,当塔顶图像为44时,n=7,当塔顶图像为2*2时,n=8。
nlevels幅不同比例的图像提取特征点总和作为这幅图像的oFAST特征点。

高斯金字塔(Gaussianpyramid) : 用来 向下 (图像倍数变小)采样,主要的图像金字塔。
要从金字塔第i层生成第i+1层(我们表示第i+1层为G_i+1),我们先要用高斯核对G_1进行卷积,然后删除所有偶数行和偶数列。当然的是,新得到图像面积会变为源图像的四分之一。按上述过程对输入图像G_0执行操作就可产生出整个金字塔。
高斯金字塔是通过高斯平滑亚采样获得一些列下采样图像,也就是说第K层高斯金字塔通过平滑、亚采样就可以获得K+1层高斯图像,高斯金字塔包含了一系列低通滤波器,其截至频率从上一层到下一层是以因子2逐渐增加,所以高斯金字塔可以跨越很大的频率范围。金字塔的图像如下:

每一层都按从下到上的次序编号, 层级 G_i+1 (表示为 G_i+1尺寸小于第i层G_i)

为了获取层级为 G_i+1 的金字塔图像,我们采用如下 方法 :

<1> 对图像G_i进行高斯内核卷积

<2> 将所有偶数行和列去除

向下取样会逐渐丢失图像的信息。

resize() 函数剖析

resize( )为OpenCV中专职调整图像大小的函数。

此函数将源图像精确地转换为指定尺寸的目标图像。如果源图像中设置了ROI(Region Of Interest ,感兴趣区域),那么resize( )函数会对源图像的ROI区域进行调整图像尺寸的操作,来输出到目标图像中。若目标图像中已经设置ROI区域,不难理解resize( )将会对源图像进行尺寸调整并填充到目标图像的ROI中。

很多时候,我们并不用考虑第二个参数dst的初始图像尺寸和类型(即直接定义一个Mat类型,不用对其初始化),因为其尺寸和类型可以由src,dsize,fx和fy 这其他的几个参数来确定

C++: void resize(InputArray src,OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )
  • 第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可。
  • 第二个参数,OutputArray类型的dst输出图像,当其非零时,有着dsize(第三个参数)的尺寸,或者由src.size()计算出来。
  • 第三个参数,Size类型的dsize输出图像的大小;如果它等于零,由下式进行计算:

    其中,dsize,fx,fy都不能为0。
  • 第四个参数,double类型的fx,沿水平轴的缩放系数,有默认值0,且当其等于0时,由下式进行计算:
  • 第五个参数,double类型的fy,沿垂直轴的缩放系数,有默认值0,且当其等于0时,由下式进行计算:

    -第六个参数,int类型的interpolation,用于指定插值方式,默认为INTER_LINEAR(线性插值)。
    可选择的插值方法有:
    NTER_NEAREST - 最近邻插值
    INTER_LINEAR - 线性插值(默认值)
    INTER_AREA - 区域插值(利用像素区域关系的重采样插值)
    INTER_CUBIC –三次样条插值(超过4×4像素邻域内的双三次插值)
    INTER_LANCZOS4 -Lanczos插值(超过8×8像素邻域的Lanczos插值)

pyrDown()函数剖析

pyrDown( )函数的作用是向下采样并模糊一张图片,说白了就是缩小一张图片。

C++: void pyrDown(InputArray src,OutputArray dst, const Size& dstsize=Size(), int borderType=BORDER_DEFAULT)
  • 第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可。
  • 第二个参数,OutputArray类型的dst,输出图像,和源图片有一样的尺寸和类型。
  • 第三个参数,const Size&类型的dstsize,输出图像的大小;有默认值Size(),即默认情况下,由Size Size((src.cols+1)/2, (src.rows+1)/2)来进行计算,且一直需要满足下列条件:

    该pyrDown函数执行了高斯金字塔建造的向下采样的步骤。首先,它将源图像与如下内核做卷积运算:


接着,它便通过对图像的偶数行和列做插值来进行向下采样操作。

在orb_slam2中,为了实现特征尺度不变性采用了图像金字塔,金字塔的缩放因子为1.2,。其思路就是对原始图形(第0层)依次进行1/1.2缩放比例进行降采样得到共计8张图片(包括原始图像),然后 分别对得到的图像进行特征提取,并记录特征所在金字塔的第几层 ,这样得到一帧图像的特征点,如上图所示。ref:

ORBSLAM2 理论部分_高斯金字塔(二)相关推荐

  1. python金字塔_高斯金字塔与拉普拉斯金字塔的原理与python构建

    高斯金字塔和拉普拉斯金字塔[1]在图像相关领域应用广泛,尤其是图像融合和图像分割方面.本文从理论和opencv实现两个方面对两种金字塔进行了介绍,并给出了二者的视觉效果. 1.高斯金字塔 在计算机视觉 ...

  2. python 高斯金字塔_Python OpenCV 之图像金字塔,高斯金字塔与拉普拉斯金字塔

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧. 基础知识铺垫 学习图像金字塔,发现网上的资料比较多,检索起来比较轻松. 图像金字塔是一张图像多尺度的表达,或者可以理解成一 ...

  3. Python OpenCV 之图像金字塔,高斯金字塔与拉普拉斯金字塔

    Python OpenCV 365 天学习计划,与橡皮擦一起进入图像领域吧. Python OpenCV 基础知识铺垫 高斯金字塔 cv2.pyrDown 与 cv2.pyrUp 函数原型 拉普拉斯金 ...

  4. AI笔记: 计算机视觉之SIFT特征检测: 尺度空间、二维高斯函数、高斯金字塔

    SIFT概述 SIFT的全称是Scale Invariant Feature Transform(尺度不变特征变换),是由加拿大教授David G.Lowe在1999年发表于计算机视觉国际会议,200 ...

  5. 高斯金字塔 拉普拉斯金字塔_金字塔学入门指南

    高斯金字塔 拉普拉斯金字塔 The topic for today is on data validation and settings management using Python type hi ...

  6. JVM调优理论篇_二、常用垃圾回收器(JVM10种垃圾回收器)以及垃圾回收算法

    JVM调优理论篇_二.常用垃圾回收器以及垃圾回收算法 前言 一.垃圾回收基础 1.什么场景下使用垃圾回收 2.垃圾回收发生在哪个区域? 3.对象在什么情况下会被回收?(如何判断一个对象是否该被回收) ...

  7. 原理 拉普拉斯金字塔_图像金字塔(高斯金字塔、拉普拉斯金字塔)

    1.图像金字塔 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构. 图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状 ...

  8. opencv学习(二十六)之图像金字塔(高斯金字塔、拉普拉斯金字塔)

    在进行数字图像处理时,我们可能会需要将某种尺寸的图像转换为其他尺寸的图像,这样会存在放大图像核缩小图像两种可能.opencv提供了一个真正意义上的图像所方函数resize(),但在本篇中主要学习以下使 ...

  9. 【OpenCV新手教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放...

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

  10. 【OpenCV入门教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/26157633 作者:毛星云(浅墨) ...

最新文章

  1. php 生成等比例缩略图,PHP等比例生成缩略图
  2. 青龙羊毛——杀猪盘(搬砖,非原创)
  3. 【学习笔记】树形结构基础
  4. 恢复Cisco3640的IOS
  5. 加速度随机游走_IMU Noise Model
  6. HTML中From表单的常用type属性及用法【较全】
  7. 小米 MySQL 数据实时同步到大数据数仓的架构与实践
  8. 经典面试题(42):以下代码将输出的结果是什么?
  9. 用electron实现播放flash小游戏
  10. OpenCV老版本下载方法
  11. python3 爬虫 爬取美女图片
  12. MATLAB图像处理植物叶片面积计算
  13. 在chrome的网址上搜索总是跳转到百度首页
  14. Oracle递归死循环怎么办?
  15. clickhouse-cpp 写入时卡住 bug调试
  16. 广州市车联网先导区LTE-V2X 车载直连通讯设备技术规范
  17. 微信小程序在智能家居物联网中的应用
  18. bigemap如何应用卫星图像到Auto CAD
  19. 小程序 键盘挡住底部输入框解析
  20. 错误:compatible versions of theorg.hibernate.cfg.annotations.EntityBinder and javx.persistence.Table冲突

热门文章

  1. 分布式系统的容错性(一)——容错性简介
  2. 在腾讯云开通短信验证服务并完成群发消息测试
  3. 古月学院《如何在Gazebo中实现阿克曼转向车的仿真》课程资料在ROS Noetic版本中运行时的常见错误及解决方法
  4. wifi 频段表_wifi频段如何设置为5ghz
  5. RISV-Reader小结
  6. TCP攻击实战及其简略防御措施
  7. OneNote2013打开共享
  8. 简易开发的百度地图API
  9. 2018首届世界传感器大会11月12日-14日在郑州召开
  10. FLASH学习(一)