图像金字塔(高斯金字塔、拉普拉斯金字塔)

 

一、图像金字塔ide

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

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

金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。3d

咱们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低blog

通常状况下有两种类型的图像金字塔经常出如今文献和以及实际运用中。他们分别是:ci

  ●高斯金字塔(Gaussianpyramid): 用来向下采样,主要的图像金字塔
  拉普拉斯金字塔(Laplacianpyramid): 用来从金字塔低层图像重建上层未采样图像,在数字图像处理中也便是预测残差,能够对图像进行最大程度的还原,配合高斯金字塔一块儿使用。
二者的简要区别:高斯金字塔用来向降低采样图像,5而拉普拉斯金字塔则用来从金字塔底层图像中向上采样重建一个图像。数学

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

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

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

归纳起来就是:

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

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

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

二、高斯金字塔

高斯金字塔是经过高斯平滑和亚采样得到一些列下采样图像,也就是说第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)与放大后的图像卷积,得到 “新增像素”的近似值

获得的图像即为放大后的图像,可是与原来的图像相比会发觉比较模糊,由于在缩放的过程当中已经丢失了一些信息,若是想在缩小和放大整个过程当中减小信息的丢失,这些数据造成了拉普拉斯金字塔。

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

 三、拉普拉斯金字塔

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

 

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

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

所以,咱们能够直接用OpenCV进行拉普拉斯运算:

 

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

整个拉普拉斯金字塔运算过程能够经过下图来归纳:

 

因此,咱们能够将拉普拉斯金字塔理解为高斯金字塔的逆形式。

另外再提一点,关于图像金字塔很是重要的一个应用就是实现图像分割。图像分割的话,先要创建一个图像金字塔,而后在G_i和G_i+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( )是一个会丢失信息的函数。为了恢复原来更高的分辨率的图像,咱们要得到由降采样操做丢失的信息,这些数据就和拉普拉斯金字塔有关系了。

二、高斯金字塔

高斯金字塔是经过高斯平滑和亚采样得到一些列下采样图像,也就是说第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)与放大后的图像卷积,得到 “新增像素”的近似值

获得的图像即为放大后的图像,可是与原来的图像相比会发觉比较模糊,由于在缩放的过程当中已经丢失了一些信息,若是想在缩小和放大整个过程当中减小信息的丢失,这些数据造成了拉普拉斯金字塔。

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

 三、拉普拉斯金字塔

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

 

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

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

所以,咱们能够直接用OpenCV进行拉普拉斯运算:

 

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

整个拉普拉斯金字塔运算过程能够经过下图来归纳:

 

因此,咱们能够将拉普拉斯金字塔理解为高斯金字塔的逆形式。

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