pyramidslecture5工作汇报图像金字塔图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。高斯金字塔(Gaussianpyramid):用来向下采样,主要的图像金字塔。拉普拉斯金字塔(Laplacianpyramid):用来从金字塔低层图像重建上层未采样图像,在数字图像处理中也即是预测残差,可以对图像进行最大程度的还原,配合高斯金字塔一起使用。这里的向下与向上采样,是对图像的尺寸而言的(和金字塔的方向相反),向上就是图像尺寸加倍,向下就是图像尺寸减半。而如果我们按上图中演示的金字塔方向来理解,金字塔向上图像其实在缩小,这样刚好是反过来了。两者的简要区别:高斯金字塔用来向下降采样图像,而拉普拉斯金字塔则用来从金字塔底层图像中向上采样重建一个图像。要从金字塔第i层生成第i+1层(我们表示第i+1层为Gi+1),我们先要用高斯核对G1进行卷积,然后删除所有偶数行和偶数列。当然的是,新得到图像面积会变为源图像的四分之一。按上述过程对输入图像G0执行操作就可产生出整个金字塔。高斯金字塔:高斯金字塔是通过高斯平滑和亚采样获得一些列下采样图像,也就是说第K层高斯金字塔通过平滑、亚采样就可以获得K+1层高斯图像,高斯金字塔包含了一系列低通滤波器,其截至频率从上一层到下一层是以因子2逐渐增加,所以高斯金字塔可以跨越很大的频率范围。高斯金字塔图像:对图像的向下取样为了获取层级为Gi+1的金字塔图像,我们采用如下方法:1对图像Gi进行高斯内核卷积2将所有偶数行和列去除得到的图像即为Gi+1的图像,显而易见,结果图像只有原图的四分之一。通过对输入图像Gi(原始图像)不停迭代以上步骤就会得到整个金字塔。同时我们也可以看到,向下取样会逐渐丢失图像的信息。以上就是对图像的向下取样操作,即缩小图像。隔行取值卷积拉普拉斯金字塔:拉普拉斯金字塔中的图象可用对高斯金字塔中相邻两层图象的相减而近似得到。需先将图象在较粗的尺度(较高的层次)上扩展。扩展比减少尺寸的压缩困难,因为缺少的信息需要通过插值来得到下式是拉普拉斯金字塔第i层的数学定义:式中的表示第i层的图像。而UP()操作是将源图像中位置为(x,y)的像素映射到目标图像的(2x+1,2y+1)位置,即在进行向上取样。符号表示卷积,为5x5的高斯内核。也就是说,拉普拉斯金字塔是通过源图像减去先缩小后再放大的图像的一系列图像构成的。对图像的向上取样如果想放大图像,则需要通过向上取样操作得到,具体做法如下:1将图像在每个方向扩大为原来的两倍,新增的行和列以0填充2使用先前同样的内核(乘以4)与放大后的图像卷积,获得“新增像素”的近似值得到的图像即为放大后的图像,但是与原来的图像相比会发觉比较模糊,因为在缩放的过程中已经丢失了一些信息,如果想在缩小和放大整个过程中减少信息的丢失,这些数据形成了拉普拉斯金字塔。所以,我们可以将拉普拉斯金字塔理解为高斯金字塔的逆形式。关于图像金字塔非常重要的一个应用就是实现图像分割。图像分割的话,先要建立一个图像金字塔,然后在Gi和Gi+1的像素直接依照对应的关系,建立起”父与子“关系。而快速初始分割可以先在金字塔高层的低分辨率图像上完成,然后逐层对分割加以优化。在某种分辨率下无法发现的特性在另一种分辨率下将很容易被发现。MATLABANDOPENCV在matlab里面,函数impyramid专门用于生成图像金字塔,直接调用就可以了。格式:B=impyramid(A,direction)作用:对A进行Gaussian金字塔变换,生成的图像是B。direction为“reduce”和“expand”,分别对应着分解和扩张。注:1.m*n的A“reduce”和“expand”后的维数分别对应ceil(M/2)*ceil(N/2)和(2*M-1)*(2*N-1)。2.impyramid只对前两维有效。可以使用OpenCV为我们提供的如下两种方式:1resize函数。这是最直接的方式2pyrUp()、pyrDown()函数。即图像金字塔相关的两个函数,对图像进行向上采样,向下采样的操作pyrUp、pyrDown其实和专门用作放大缩小图像尺寸的resize在功能上差不多,披着图像金字塔的皮,说白了还是在对图像进行放大和缩小操作。另外需要指出的是,pyrUp、pyrDown在OpenCV的imgproc模块中的ImageFiltering子模块里。而resize在imgproc模块的GeometricImageTransformations子模块里。resize()为OpenCV中专职调整图像大小的函数。【插值】选用不同插值需要注意的是,PryUp和PryDown不是互逆的,即PryUp不是降采样的逆操作。这种情况下,图像首先在每个维度上扩大为原来的两倍,新增的行(偶数行)以0填充。然后给指定的滤波器进行卷积(实际上是一个在每个维度都扩大为原来两倍的过滤器)去估计“丢失”像素的近似值。PryDown()是一个会丢失信息的函数。为了恢复原来更高的分辨率的图像,我们要获得由降采样操作丢失的信息,这些数据和拉普拉斯金字塔有关。THANKS