原理 拉普拉斯金字塔_图像金字塔(高斯金字塔、拉普拉斯金字塔)
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. 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构. 2. 图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是 ...
- 原理 拉普拉斯金字塔_图像融合:拉普拉斯金字塔融合算法
继图像拼接的课程设计之后,对这方面依旧十分感兴趣.很巧合的是,数图老师表示刚好手上有这么一个项目,要用到这方面的知识,可以让我去作为毕业设计.虽然距离毕业还远,不过如果能选到一个感兴趣并且有一定深度的 ...
- python使用循环嵌套显示数字金字塔_如何使用Python生成数字金字塔?
在Python中使用数字生成金字塔有多种变体.让我们看一下两种最简单的形式 示例for i in range(5): for j in range(i + 1): print(j + 1, end=& ...
- Java动态规划走金字塔_【动态规划基础】数字金字塔
1258:[例9.2]数字金字塔 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 9635 通过数: 5467 [题目描述] 观察下面的数字金字塔.写一个程 ...
- java编写数字金字塔_在java中的数字金字塔 (numbers pyramid in java)
最佳答案 英文原文 It might be a bit simpler to write and read if you make a separate method to print each li ...
- python用while写出金字塔_使用while循环的星金字塔python嵌套while循环
所以,让我们用算术的方法来处理这个问题.第一排需要一颗星,第二排需要两颗星,第三排需要三颗星等 换句话说,星的数目等于当前行索引(假设您的索引从1开始).Python的string format方法允 ...
- matlab中表示拉普拉斯分布_分布拟合——正态/拉普拉斯/对数高斯/瑞利 分布
作者:桂. 时间:2017-03-16 20:30:20 声明:欢迎被转载,记得注明出处~ 前言 本文为曲线与分布拟合的一部分,主要介绍正态分布.拉普拉斯分布等常用分布拟合的理论推导以及代码实现. ...
- 行列式的拉普拉斯展开定理_如何证明行列式的拉普拉斯定理?
零.补充定义 为了表述准确并统一记号,先重新叙述以下众所周知的定义: 定义(子式. 阶子式):设 为任意 阶矩阵,(保序地)选取 的任意 行与 列(交叉处的元素)组成一个方阵,其行列式称为 的一个 阶 ...
- 【OpenCV 学习笔记】—— 基于拉普拉斯金字塔的图像融合原理以及C++实现【或许是全网最通俗易懂的讲解】
文章目录 一.高斯金字塔 1.1 什么是高斯金字塔 1.2 利用OpenCV求取高斯金字塔 二.拉普拉斯金字塔 2.1 什么是拉普拉斯金字塔 2.2 利用 OpenCV求取拉普拉斯金字塔 三.基于拉普 ...
最新文章
- 的内怎么放_冰箱不是“万能”箱,哪些食物不宜放冰箱储存?
- tree树的展示,check树的展示,json数据转zree树格式数据
- Mysql下载以及安装(新手入门,超详细)
- 网易云信AI音频最新研究成果获世界顶级学术会议 ICASSP 2022 认可
- centos 杀死进程命令kill
- vue的鼠标移入和移出
- 联想Z6 Pro测评:斗战圣佛?很能打!
- 【Flutter】基础组件【02】Container
- 输入流控制:几种清除输入流中空格或回车的常用函数
- 使用 vlmcsd 部署 KMS 服务器
- 网速/带宽与下载速度对照表
- NLP自然语言处理-文本摘要简述
- 一台电脑安装两个不同版本JDK
- Java String类型入门 String str= abc god 中国 java反转每个单词
- ifft2 二维快速傅里叶逆变换(Matlab)
- 从人物的名字看香港电影人的文化底蕴
- 软件测试缺陷指标,如何对缺陷进行分析,都分析哪些指标?
- 用unity实现大转盘
- 腾讯地图实现站点标记,及已标记的点回显在地图上
- 【互联网人的英语】到底要不要学语法?什么时候学比较好?