2、拉普拉斯金字塔融合
图像金字塔方法的原理是:将参加融合的的每幅图像分解为多尺度的金字塔图像序列,将低分辨率的图像在上层,高分辨率的图像在下层,上层图像的大小为前一层图像大小的1/4。层数为0,1,2……N。将所有图像的金字塔在相应层上以一定的规则融合,就可得到合成金字塔,再将该合成金字塔按照金字塔生成的逆过程进行重构,得到融合金字塔。这个总的思路就是一下所有基于金字塔融合的算法过程,不同点就在于分解构造的金字塔不同,每层的融合规则不一样,重构的方法不同而已。金字塔方法最先实现了这种思想,之后小波方法进一步完善和发展了这种多尺度融和的思想。
2.1、原理阐述
(1)高斯金字塔
高斯金字塔是最基本的图像塔。首先将原图像作为最底层图像G0(高斯金字塔的第0层),利用高斯核(5*5)对其进行卷积,然后对卷积后的图像进行下采样(去除偶数行和列)得到上一层图像G1,将此图像作为输入,重复卷积和下采样操作得到更上一层图像,反复迭代多次,形成一个金字塔形的图像数据结构,即高斯金字塔。
高斯金字塔的构建过程为:假设高斯金字塔的第L层图像为Gl:
式中N为高斯金字塔顶层层号,Rl和Cl分别为高斯金字塔第l层的行数和列数W(m,n)是一个二维可分离的5*5窗口函数,表达式为:
由G0,G1,,,GN,就构成了一个高斯金字塔,其中G0为高斯金字塔的底层(与原图像相同)GN为金字塔的顶层。由此可见高斯金字塔的当前层图像就是对其前一层图像首先进行高斯低通滤波,然后再进行隔行和隔列的降2采样而生成的。前一层图像大小依次为当前层图像大小的4倍。
Opencv中使用pyrdown函数就可以获得高斯金字塔。
(2)拉普拉斯金字塔
在高斯金字塔的运算过程中,图像经过卷积和下采样操作会丢失部分高频细节信息。为描述这些高频信息,人们定义了拉普拉斯金字塔(Laplacian Pyramid, LP)。用高斯金字塔的每一层图像减去其上一层图像上采样并高斯卷积之后的预测图像,得到一系列的差值图像即为 LP 分解图像。
将Gl内插方法得到放大图像*Gl,使*Gl的尺寸与*Gl-1的尺寸相同,即放大算子Expand
该式子实现两个步骤:在偶数行和列插入0,然后使用下采样中的高斯核进行滤波处理,得到和l-1层一样大小的图像。
N为拉普拉斯金字塔顶层的层号LPl是拉普拉斯金字塔分解的第L层图像。由LP0,LP1、LP2…LPN构成的金字塔即为拉普拉斯金字塔。它的每一层L0图像是高斯金字塔本层G0图像与其高一层图像G1经内插放大后图像*G1的差,此过程相当于带通滤波,因此拉普拉斯金字塔又称为带通金字塔分解。
内插方法:opencv中有实现的函数pyrup。可以得到*G1。然后在两个函数作差,相减就可以得到拉普拉斯金字塔。
求得每个图像的拉普拉斯金字塔后需要对相应层次的图像进行融合,具体的融合规则有,取大、取小,等等。
(3)重构
对融合后的拉普拉斯金字塔,从其顶层开始逐层从上至下按下式进行递推,可以恢复其对应的高斯金字塔,并最终可得到原图像G0。就是从最高层开始使用内插的方法。
2.2、融合应用
图像拉普拉斯金字塔分解的目的是将源图像分别分解到不同的空间频带上,融合过程是在各空间频率层上分别进行的,这样就可以针对不同分解层的不同频带上的特征与细节,采用不同的融合算子以达到突出特定频带上特征与细节的目的。即有可能将来自不同图像的特征与细节融合在一起。
(1)顶层处理
设LAl和LBl分别为源图像A,B经过拉普拉斯金字塔分解后得到的第l层图像,融合后的结果为LFl。当l=N时,LAN和LBN分别为源图像A,B经过拉普拉斯金字塔分解后得到的顶层图像。对于顶层图像的融合,首先计算以其各个像素为中心的区域大小为M*N(M、N取奇数且M >= 3、N >= 3)的区域平均梯度:
其中,Ix与Iy分别为像素f(x,y)在x与y方向上的一阶差分,定义如下:
因此对于顶层图像中的每一个像素LAN(i, j)和LBN(i, j)都可以得到与之相对应的区域平均梯度GA(i, j)和GB(i, j)。由于平均梯度反映了图像中的微小细节反差和纹理变化特征,同时也反映出图像的清晰度。一般来说平均梯度越大,图像层次也丰富,则图像越清晰。因此顶层图像的融合结果为:
(2)各层次处理
当0<l<N时,则对于经过拉普拉斯金字塔分解的第l层图像,首先计算其区域能量:
则其他层次图像的融合结果为:
在得到金字塔各个层次的融合图像LF1、LF2、LFN后。通过前面的重构,便可得到最终的融合图像。
第二种融合规则:
采用最高层系数取平均,其余各层系数绝对值取大的融合策略进行融合。融合后图像的系数(灰度值)越接近较清晰图像的灰度值就说明融合效果好。