转自https://www.cnblogs.com/sddai/p/10330756.html

1、图像金字塔
图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。

图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。

金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。
我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。

一般情况下有两种类型的图像金字塔常常出现在文献和以及实际运用中。他们分别是:
  ●高斯金字塔(Gaussianpyramid): 用来向下采样,主要的图像金字塔
  ●拉普拉斯金字塔(Laplacianpyramid): 用来从金字塔低层图像重建上层
  
未采样图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。

两者的简要区别:高斯金字塔用来向下降采样图像,5而拉普拉斯金字塔则用来从金字塔底层图像中向上采样重建一个图像。

要从金字塔第i层生成第i+1层(我们表示第i+1层为G_i+1),我们先要用高斯核对G_1进行卷积,然后删除所有偶数行和偶数列。当然的是,新得到图像面积会变为源图像的四分之一。按上述过程对输入图像G_0执行操作就可产生出整个金字塔。

当图像向金字塔的上层移动时,尺寸和分辨率就降低。OpenCV中,从金字塔中上一级图像生成下一级图像的可以用PryDown。而通过PryUp将现有的图像在每个维度都放大两遍。

图像金字塔中的向上和向下采样分别通过OpenCV函数 pyrUp 和 pyrDown 实现。

概括起来就是:
  ●对图像向上采样:pyrUp函数
  ●对图像向下采样:pyrDown函数
  
这里的向下与向上采样,是对图像的尺寸而言的(和金字塔的方向相反),向上就是图像尺寸加倍,向下就是图像尺寸减半。而如果我们按上图中演示的金字塔方向来理解,金字塔向上图像其实在缩小,这样刚好是反过来了。

但需要注意的是,PryUp和PryDown不是互逆的,即PryUp不是降采样的逆操作。这种情况下,图像首先在每个维度上扩大为原来的两倍,新增的行(偶数行)以0填充。然后给指定的滤波器进行卷积(实际上是一个在每个维度都扩大为原来两倍的过滤器)去估计“丢失”像素的近似值。

PryDown( )是一个会丢失信息的函数。为了恢复原来更高的分辨率的图像,我们要获得由降采样操作丢失的信息,这些数据就和拉普拉斯金字塔有关系了。

2、高斯金字塔

高斯金字塔是通过高斯平滑和亚采样获得一些列下采样图像,也就是说第K层高斯金字塔通过平滑、亚采样就可以获得K+1层高斯图像,高斯金字塔包含了一系列低通滤波器,其截至频率从上一层到下一层是以因子2逐渐增加,所以高斯金字塔可以跨越很大的频率范围。金字塔的图像如下:

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

⑴对图像的向下取样

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

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

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

得到的图像即为G_i+1的图像,显而易见,结果图像只有原图的四分之一。通过对输入图像G_i(原始图像)不停迭代以上步骤就会得到整个金字塔。同时我们也可以看到,向下取样会逐渐丢失图像的信息。

以上就是对图像的向下取样操作,即缩小图像。

⑵对图像的向上取样

如果想放大图像,则需要通过向上取样操作得到,具体做法如下:

<1>将图像在每个方向扩大为原来的两倍,新增的行和列以0填充

<2>使用先前同样的内核(乘以4)与放大后的图像卷积,获得 “新增像素”的近似值

得到的图像即为放大后的图像,但是与原来的图像相比会发觉比较模糊,因为在缩放的过程中已经丢失了一些信息,如果想在缩小和放大整个过程中减少信息的丢失,这些数据形成了拉普拉斯金字塔。

那么,我们接下来一起看一看拉普拉斯金字塔的概念吧。

3、拉普拉斯金字塔

下式是拉普拉斯金字塔第i层的数学定义:

式中的表示第i层的图像。而UP()操作是将源图像中位置为(x,y)的像素映射到目标图像的(2x+1,2y+1)位置,即在进行向上取样。符号表示卷积,为5x5的高斯内核。

我们下文将要介绍的pryUp,就是在进行上面这个式子的运算。

因此,我们可以直接用OpenCV进行拉普拉斯运算:

也就是说,拉普拉斯金字塔是通过源图像减去先缩小后再放大的图像的一系列图像构成的。

我们可以将拉普拉斯金字塔理解为高斯金字塔的逆形式。

另外再提一点,关于图像金字塔非常重要的一个应用就是实现图像分割。图像分割的话,先要建立一个图像金字塔,然后在G_i和G_i+1的像素直接依照对应的关系,建立起”父与子“关系。而快速初始分割可以先在金字塔高层的低分辨率图像上完成,然后逐层对分割加以优化。

高斯金字塔和拉普拉斯金字塔相关推荐

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

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

  2. 图像金字塔:高斯金字塔vs拉普拉斯金字塔

    文章目录 一.图像金字塔的定义 二.高斯金字塔的计算 三.拉普拉斯金字塔的计算 一.图像金字塔的定义 图像金字塔是图像中多尺度表达的一种,用多分辨率来解释图像. 金字塔的底部是待处理图像的高分辨率表示 ...

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

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

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

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

  5. opencv学习-高斯金字塔和拉普拉斯金字塔

    图像金字塔 一个图像金字塔是由一系列的图像组成,最底下一张是图像尺寸最大,最上方的图像尺寸最小,从空间上从上向下看就像一个古代的金字塔. 金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似 ...

  6. 高斯金字塔和拉普拉斯金字塔实现图像融合

    相关笔记 高斯金字塔: repeat{ 1.对图像进行高斯滤波(平滑化): 2.抛除偶数行和列,依次缩小图片尺寸. // 每进行一轮循环,得到一层金字塔,每层金字塔图像大小都是上一层的一半. // 该 ...

  7. 【笔记】高斯金字塔和拉普拉斯金字塔:高斯金字塔持续的下采样让图片变小,像素变少,特征模糊;拉普拉斯金字塔以记录恢复原图过程中的上采样后图片与原始图片的损失,力图还原真实图片

    高斯金字塔和拉普拉斯金字塔应用在图像融合和图像分割方面. def laplacian(gaussian_pyramid, up_times=5):laplacian_pyramid = [gaussi ...

  8. 高斯拉普拉斯 java_基于能量匹配的高斯金字塔与拉普拉斯金字塔图像融合

    利用拉普拉斯对高频信息的保留,重建出原始图像 操作过程如下 对于两张图像 可以看到两张同样的图片一个脸部模糊一个除了脸其他地方模糊,现在我们需要通过局部能量匹配的融合方法对图像进行增强,即基于能量特征 ...

  9. 图像金字塔、高斯金字塔、拉普拉斯金字塔是怎么回事?附利用拉普拉斯金字塔和高斯金字塔重构原图的Python-OpenCV代码

    图像金字塔是通过多个分辨率表示图像的一种有效且简单的结构. 一个图像金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像.图像金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率表示. 图像金字塔 ...

  10. OpenCV中的图像金字塔(高斯金字塔、拉普拉斯金字塔)

    最近在看关于数字图像的知识点,目前在图像金字塔部分,实在是懒得用手作笔记了,就以其中比较出名的"高斯金字塔"和"拉普拉斯金字塔"为例,基于OpenCV的源代码作 ...

最新文章

  1. C++11中头文件thread的使用
  2. 掘金专访 - 收藏集 - 掘金
  3. python中的常量_Python中的变量和常量
  4. 使用Grunt构建任务管理脚本(转)
  5. oracle新建对象 权限管理
  6. 上传本地代码到github从github下载源码
  7. grep 两个字符串_Linux运维工程师想要的12个grep指令
  8. SqlServer数据库正在还原的解决办法
  9. c++ 打印日志信息
  10. 免费JSON格式的服务接口
  11. 浏览器控件打开PDF文件时文件内容不显示的解决方法
  12. 动手打造Android7.0以上的注入工具
  13. Msm8960(APQ8064)平台的MSM-AOSP-kitkat编译适配(7):信号通讯
  14. matlab fig图片读取,从Matlab .fig文件中读取数据,并重新绘图
  15. 计算机学win7画图,Windows7系统画图工具怎么打开?
  16. HTML钢琴效果,JS实现钢琴效果
  17. js html监听ctrl v,js监听组合按键
  18. 游戏数据库版本更新神器Flyway
  19. 路由器重温——RIP路由
  20. 福大软工1816 · 第三次作业 - 结对项目1

热门文章

  1. 基于Java毕业设计沧州雄狮足球俱乐部管理系统源码+系统+mysql+lw文档+部署软件
  2. 远程管理概念及IP KVM的优势解析
  3. 又双叒叕拿奖!腾讯安全天御荣获“联邦学习应用奖”
  4. 【设计模式】——六芒星
  5. 腾讯将进军oa办公系统行业
  6. 浅谈LD_PRELOAD劫持
  7. C语言中字符串赋值处理方式,C语言中字符串赋值处理方式
  8. 汉诺塔递归Python实现
  9. 面试题:vue生命周期函数都有哪些,请列出并说出其功能?
  10. for循环异步调用接口,怎样判断数据已经返回完成?