综合以上,研究和应用最多的是像数级图像融合,目前提出的绝大多数的图像融合算法均属于该层次上的融合。图像融合狭义上指的就是像数级图像融合。本文研究的也正是像素级图像融合算法。像素级融合是最低层次的融合,也是后两级的基础。它是将各原图像中对应的像素进行融合处理,保留了尽可能多的图像信息, 精度比较高, 因而倍受人们的重视。像素级的图像融合方法大致可分为三大类:
1. 简单的图像融合方法
2. 基于塔形分解(如Laplace塔形分解、比率塔等)的图像融合方法
3. 基于小波变换的图像融合方法
小波图像融合综述
基于小波变换的图像融合Matlab
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函数就可以获得高斯金字塔。
img1=imread('test.jpg');
[m,n]=size(img1);
w=fspecial('gaussian',[3 3]);
img2=imresize(imfilter(img1,w),[m/2 n/2]);
img3=imresize(imfilter(img2,w),[m/4 n/4]);
img4=imresize(imfilter(img3,w),[m/8 n/8]);
img5=imresize(imfilter(img4,w),[m/16 n/16]);
imshow(img1);
figure,imshow(img2);
figure,imshow(img3);
figure,imshow(img4);
figure,imshow(img5);
注意:这里高斯滤波器用的是3*3大小,而sigma默认为0.5;可以相应调整滤波器大小和sigma的值,获得的效果也不尽相同。用matlab自带的函数也可w=fspecial('gaussian',[n n], sigma )。
function pyr = gauss_pyramid(I,nlev)
pyr = cell(nlev,1);
pyr{1} = I;
G_LOWER = I;
f = [.05, .25, .4, .25, .05];
f = f'*f;
for l = 2:nlev
G_LOWER=G_LOWER(1:2:size(G_LOWER,1)-1,1:2:size(G_LOWER,2)-1); %downsample
pyr{l}=imfilter(G_LOWER,f,'replicate');
end
end
(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。然后在两个函数作差,相减就可以得到拉普拉斯金字塔。
图解gauss、laplace金字塔的构成:
求得每个图像的拉普拉斯金字塔后需要对相应层次的图像进行融合,具体的融合规则有,取大、取小,等等。
图像拉普拉斯金字塔(laplacian pyramid)并从金字塔重建原图 matlab程序实现
(3)重构
对融合后的拉普拉斯金字塔,从其顶层开始逐层从上至下按下式进行递推,可以恢复其对应的高斯金字塔,并最终可得到原图像G0。就是从最高层开始使用内插的方法。
2.2、融合应用
图像拉普拉斯金字塔分解的目的是将源图像分别分解到不同的空间频带上,融合过程是在各空间频率层上分别进行的,这样就可以针对不同分解层的不同频带上的特征与细节,采用不同的融合算子以达到突出特定频带上特征与细节的目的。即有可能将来自不同图像的特征与细节融合在一起。
3 、梯度金字塔融合
未完待续。。。。。
参考:
http://m.blog.csdn.net/article/details?id=42128923 小波图像融合综述
http://blog.csdn.net/chenyusiyuan/article/details/1888808 小波图像融合的Matlab实现示例(添加图片演示080428)
http://www.cnblogs.com/silence-hust/p/4193208.html 图像融合(三)-- 拉普拉斯金字塔
http://blog.csdn.net/abcjennifer/article/details/7628655 图像拉普拉斯金字塔融合(Laplacian Pyramid Blending)
http://blog.csdn.net/xiaojidan2011/article/details/8099433 基于小波变换的图像融合
http://blog.csdn.net/shiningdove/article/details/6784527 用于图像融合的两种方法
http://eric-yuan.me/image-pyramids/ Image Pyramids (opencv 实现)