当前位置:   article > 正文

【MATLAB图像融合】[19]手算--拉普拉斯金字塔的一些解释_图像融合拉普拉斯金字塔

图像融合拉普拉斯金字塔

引言
需要代码和之前知识的链接在这里:
①高斯金字塔
②拉普拉斯金字塔

拉普拉斯金字塔是一种无损可逆的分解方法,它不具备方向性、稀疏性、平移不变性等你能想到的几乎任何特性,但它仍然是一种非常重要的思想和方法,此前给出过它的定义以及分解还原过程,但该过程是用代码描述,不够直观,较难理解,因此本文结合举例分析将这个知识点再次描述一遍,为接下来的非下采样拉普拉斯金字塔做铺垫知识。
为了减小规模,本文的举例全部基于4*4矩阵,比较直观。
一、高斯金字塔
高斯金字塔的构成只有两个步骤:
①、高斯滤波
②、下采样
高斯滤波是用高斯滤波核对像素点进行滤波的一种操作,复杂的计算不利于看清原理,在这里我们就认为高斯滤波是一种操作,而且是一种减法操作:

在这里插入图片描述

OK,可以发现矩阵的每个元素都-1了,我们就当做这叫高斯模糊,左边是原图像素值,右边是1层高斯,那么步骤1,完成,我们再来做步骤2,下采样,而且一定是抽值下采样每4个元素抽左上角,那么步骤2的操作过程如下:
在这里插入图片描述
于是我们的高斯金字塔底层以及第二层就构建好了,重复上面的操作,我们就得到了3层高斯金字塔:
在这里插入图片描述

二、拉普拉斯金字塔的构建
我们在上面的高斯金字塔构建中,假设高斯操作是像素值-1,那么拉普拉斯金字塔就是一种残差金字塔,它是一种带通滤波,其两个重要目的在最后分析。
拉普拉斯金字塔的构建过程可以是从上到下的(当然也可反过来),最上层的金字塔我们知道,就是[3]这个矩阵。
生成拉普拉斯金字塔的方法:
①、假设现在在第K层,现在需要求第K层的拉普拉斯金字塔。
②、对高斯金字塔的第K+1层进行上采样,之后再进行高斯滤波,得到(K+1)’。
③、使用高斯金字塔的第K层,减去刚刚得到的(K+1)’,就得到了拉普拉斯金字塔的第K层。
④、当处于顶层时,由于没有K+1层了,所以拉普拉斯金字塔的顶层就是高斯金字塔的顶层。
在这里插入图片描述
第三层拉普拉斯金字塔是【3】,图求的是第二层拉普拉斯金字塔。

首先对顶层(本例对应第3层)金字塔执行高斯滤波,再进行上采样操作,步骤1结束;步骤2是使用下一层(第2层)金字塔减去上采样后的第3层,便得到第二层的差值了,同样我们可以得到第一层的差值:
在这里插入图片描述利用第二层以及第一层高斯金字塔求得第一层拉普拉斯金字塔。

于是得到拉普拉斯金字塔:
在这里插入图片描述三、拉普拉斯金字塔的还原
这里的拉普拉斯金字塔的每一层就是细节信息了,拉普拉斯金字塔来自于高斯金字塔,但是一旦生成后,便成为独立的部分,仅通过拉普拉斯金字塔自身就可以实现原矩阵的还原:
①、拉普拉斯金字塔的还原是自上而下的,若顶层为K。
②、第K-1层的还原是拉普拉斯的K-1层+K‘。K‘即是第K层上采样后高斯滤波得到的。
③、逐层还原,直到得出原矩阵。
在这里插入图片描述在这里插入图片描述

为了还原这一过程并验证,可以这样测试:

clc;clear;
A=[4,5,6,7;5,6,7,8;6,7,8,9;7,8,9,4];
A0=A;
L=1/16*[1;2;1]*[1,2,1];
A1=conv2(A,L,'same');A1=imresize(A1,0.5);
A2=conv2(A1,L,'same');A2=imresize(A2,0.5);

A0;A1;A2%高斯金字塔

A1_=imresize(A1,2);A1_=conv2(A1_,L,'same');
T0=A0-A1_;
A2_=imresize(A2,2);A2_=conv2(A2_,L,'same');
T1=A1-A2_;
T2=A2;

T0;T1;T2;%拉普拉斯金字塔

T2_=imresize(T2,2);T2_=conv2(T2_,L,'same');
T1=T1+T2_;
T1_=imresize(T1,2);T1_=conv2(T1_,L,'same');
T0_=T0+T1_;

B=T0_;%拉普拉斯金字塔重构
disp(A~=B)%验证重构矩阵是否与原矩阵相等。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

在这里插入图片描述

四、拉普拉斯金字塔的意义
我们可以想到如下问题:
1、为什么高斯-拉普拉斯金字塔中要使用高斯滤波。
2、为什么要对图像反复上、下采样。
3、为什么笔算的上采样计算和其他人不一样。
4、拉普拉斯金字塔既然是带通滤波,通过的究竟是什么信息。

探讨:
问题1:高斯-拉普拉斯金字塔中为什么要使用高斯滤波——不然呢?名字都写了高斯-了,不用高斯滤波让这名字情何以堪-,-
手算过程中,使用-1这个操作代替了高斯操作,发现同样生成了高斯金字塔,对最终的结果也没有任何影响。这说明使用什么操作生成金字塔都是可行的,不同的操作会导致信息提取不同。我们使用高斯滤波器是因为它是性能良好的低通滤波器,我们的目的是要在生成高斯金字塔的每一层时,都把高频信息去除掉,留下低频的信息,于是我们使用低通滤波器;同样我们还可以使用均值滤波,像算例中那样全体-1而生成的金字塔基本上是没任何意义的;如果使用高通滤波生成金字塔,那么每次被舍弃的信息就是低频信息了-我们不常这样做,因为高频滤波器衰减比较快,直接用高通滤波器难以抓取多层次的高频信息–所以才有了曲线救国的方针:先用低通滤波把高频信息扔掉,再用拉普拉斯金字塔把这些高频信息取回。
问题2:为什么要对图像反复上、下采样。首先说下采样:直观上,下采样缩小了图像的尺寸,在用拉普拉斯金字塔的时候,相应地会获得更小尺寸的高频信息,答案出来了,为了获得更小的尺寸,拉普拉斯金字塔是最早的尺度分解器(塔式分解),每一层的尺寸不一样,就代表了不同的尺度,图像在不同尺度会反映出不同的特性,因此要对图像下采样;再说上采样:上采样是为了让高层的图像变换到大尺度中,从而可以做加减乘除。
问题3:为什么笔算的上采样计算和其他人不一样。
是的,通常情况,在传统LPT中,上采样是使用补0法实现的,而我在笔算中使用的是复制法,在MATLAB中使用的是二次插值法。使用补0法是最安全的,它可以最小程度影响上采样后进行的高斯滤波的准确性,如果上采样后不再进行高斯滤波,使用插值法性能会比较好。建议还是使用补0法,不同的上采样方法对LPT的性能其实也是有影响的,我们在之后分析。
问题4:拉普拉斯金字塔既然是带通滤波,通过的究竟是什么信息。通过计算我们发现,通过的信息是高频信息,具体组成是由两部分合并而来:第一部分,2倍的高斯滤波掉的高频信息,为什么是2倍请思考。第二部分,下采样时损失掉的信息。普拉普斯除了最上层之外,每层的包含的信息都是由上述两部分组成的。

补充:高斯滤波器的参数设置不同,可以影响拉普拉斯金字塔的信息含量,但影响总体较小,对LPT分解质量影响不大;而影响LPT质量的一个因素是上/下采样方法,通常上采样补0法,而下采样则是抽取的方法,都不采用插值法。插值会产生虚假的信息,这些信息混入高频信息就会影响质量。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/545497
推荐阅读
相关标签
  

闽ICP备14008679号