图像金字塔

概述

图像金字塔其实说白了就是披着金字塔外衣的图像缩放,在OpenCV中,有关图像金字塔的操作有pyrup()和pyrdown(),分别用来完成上采样和下采样,其实在OpenCV中有个人关于图片缩放的更直接的函数,即resize()

  • 下采样
    1、用高斯核对图像进行卷积
    2、将卷积结果中的偶数行、列都去掉
    如上步骤,下采样结果为原图大小的1/4
  • 上采样
    1、将图像的行和列都扩大为原图的2倍,其中偶数行用0填充
    2、用与上采样相同的高斯核(乘4)对扩充后的图进行卷积
    如上步骤,上采样后图片扩大为原图的4倍

图像金字塔分为两类:高斯图像金字塔拉普拉斯图像金字塔

高斯图像金字塔

参考博客
高斯金字塔是通过高斯平滑和亚采样获得一些列下采样图像,也就是说第K层高斯金字塔通过平滑、亚采样就可以获得K+1层高斯图像,每层是按从下到上编号的
高斯金字塔的形成过程如下:
参考博客


高斯差分金字塔
参考博客

  • 尺度归一化的高斯拉普拉斯函数的极大值和极小值同梯度hessianHarr角特征等特征比较能够产生最稳定的图像特征。
  • 高斯差分函数(DOG算子)尺度归一化的高斯拉普拉斯函数非常近似
    高斯差分金字塔的建立过程是:在高斯金字塔中的每组中相邻两层相减(下一层减上一层)就产生高斯差分金字塔,如下图:

图像插值

参考博客
不管是高斯金字塔还是高斯差分金字塔,它们都是有损的,当要对它们中的某层图像做后序处理,如:寻找极值点,时就需要对离散的图像做插值处理

  • 寻找极值点:利用已知的离散空间点插值得到的连续空间极值点的方法叫做子像素插值。
    为了提高关键点的稳定性,需要对尺度空间DoG函数进行曲线插值。利用DoG函数在尺度空间的Taylor展开式(插值函数)为:

    上式的矩阵表示如下:

    其中,X求导并让方程等于零,可以得到极值点的偏移量为:

    对应极值点,方程的值为:

拉普拉斯金字塔

参考博客
高斯金字塔的上采样和下采样是非线性处理,是不可逆的有损处理,因此,如果下采样后的图像想还原回原来的尺寸的话会丢失很多信息,使图片变得模糊,为了解决这个问题,需要提前保存因下采样而造成的缺失信息,拉普拉斯金字塔可以近似地做到这一点。
拉普拉斯金字塔实际上是通过计算图片先下采样再上采样后的结果和原图片的残差来保存缺失信息的,公式为:L(i)=G(i) - PyrUp(G(i+1))
也就是说,拉普拉斯金字塔实际上是由上面的残差图片组成的金字塔,他为还原图片做准备。

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

推荐阅读更多精彩内容