基于拉普拉斯金字塔实现图像融合(步骤 + 代码)

2024-10-14 08:30   重庆  

点击下方卡片,关注“机器视觉与AI深度学习

视觉/图像重干货,第一时间送达!

    假设您想要混合两幅图像:一幅是苹果,一幅是橘子。
    如果您想要将两张图像混合成半个苹果、半个橙子的图像,那么您可以取苹果的左半部分并将其与橙子的右半部分并排组合在一起。


    但是这张图片看起来很糟糕。它看起来非常不自然,而且水果中间的分界线非常显眼。我们想要的是一张更像这样的图片。

    注意苹果和橙子融合的平滑过渡。虽然这看起来仍然不真实,但这当然是我们比未融合图像更喜欢的。拉普拉斯金字塔图像融合将允许我们做到这一点:

    拉普拉斯金字塔图像混合并不局限于图像中间部分的混合。它可以帮助混合轮廓,并以各种方式合并图像。

具体实现原理:

    拉普拉斯金字塔结构如下,看上去很复杂,其实很简单。

    拉普拉斯金字塔建立在高斯金字塔的基础上。高斯金字塔用于表示不同比例下的信息(在本例中为图像),每个比例下原始图像的信息都得以保留。简而言之,高斯金字塔是一系列图像,从原始图像开始,原始图像缩小 1/2,原始图像缩小 1/4,依此类推。在金字塔的每次转换中,我们都希望将图像缩小 1/2。
    为了将图像比例缩小 1/2,高斯金字塔将平滑与下采样相结合。首先,使用高斯滤波器对图像进行平滑处理,然后下采样 1/2。要下采样 1/2,只需在每行和每列中每隔一个像素取一个即可。
    你可能会问自己,为什么不直接将采样率降低 1/2,并跳过平滑步骤呢?这仍然会导致图像缩小 1/2。然而,问题在于混叠。
    当通过跳过像素进行下采样时,可能会丢失图像中的重要信息。具体来说,根据您下采样的粒度,您可能会丢失所有对比度区域。以下图为例。在棋盘 A 和 B 中,下采样发生的频率足够高,因此图案得以保留。然而,在棋盘 C 中,下采样的频率变得太低,采样图像全黑。在棋盘 D 中,下采样图像根本不能代表原始棋盘图案。

    平滑可降低图像特征的最大频率,并减少仅使用子采样会遗漏的强烈对比和快速变化。通过将图像与高斯滤波器进行卷积来对图像进行高斯平滑本质上是对图像执行低通滤波。对图像进行低通滤波的目的是保留图像中的低频信息(例如低对比度位置),同时减少高频信息(例如边缘)。平滑会去除边缘!

    为了执行卷积,我们在每个像素上应用此卷积运算,并根据需要使用镜像或零填充。
    使用高斯金字塔,在每个尺度上,图像尺寸减小 2 倍,而所应用的聚合高斯平滑滤波器的尺度增加 2 倍。简单地说,金字塔的每一层,图像都会变得更小、更模糊。
    接下来,我们构建拉普拉斯金字塔。为了在给定级别 i 构建拉普拉斯,我们首先从高斯金字塔中对下一个最小级别的缩小图像进行上采样。我们从当前级别的高斯金字塔中的图像中减去上采样的图像。

    为了对较小的图像进行上采样,我们使用插值进行上采样,即先上采样再进行滤波。以 2 倍的倍数进行上采样会在原始图像的每个像素之间插入 1 个零。然后我们使用高斯滤波器对该图像进行低通滤波,以消除上采样插入的图像伪影和异常。然后,我们从高斯金字塔中当前比例的图像中减去上采样后的图像(蓝色框)。这些图像在上采样后将具有相同的大小,结果就是当前比例的拉普拉斯算子。

    拉普拉斯算子本质上是一个高通滤波器。它只捕捉图像的细节和边缘。直观地,我们可以想象,从有细节的图像中减去没有细节的平滑图像,将只留下细节。
    我们继续讨论拉普拉斯金字塔的其余部分。

    对于苹果和橙子这两幅输入图像,我们必须构建一个拉普拉斯金字塔。然后,我们为蒙版构建一个高斯金字塔。

    将高斯滤波器应用于子采样蒙版可使图像混合变得平滑。蒙版有助于我们将两个输入的拉普拉斯金字塔组合起来。使用 alpha+(1-alpha) 组合,在每个尺度上,我们将蒙版乘以图像 A 的拉普拉斯,然后将图像 B 的拉普拉斯乘以 (1-mask) 并将两者相加。

    最后,我们将组合拉普拉斯算子添加到原始高斯调整大小图像中,并乘以各自的掩码,从而重建每个比例的原始图像。这类似于将调整大小时丢失的细节(组合拉普拉斯算子)添加回高斯平滑图像中,并根据所需形式(掩码)进行组合。我们重复执行此操作,对结果进行上采样,并将结果添加到组合拉普拉斯算子中,直到我们在原始比例下获得完全混合的图像。
    这里我们有这个图像混合的完整算法:
    为了直观地展示该算法的作用,最终的拉普拉斯金字塔如下所示:
代码链接:
https://github.com/mzhao98/laplacian_blend/blob/master/ImageBlending.ipynb

视频教程:
https://www.bilibili.com/video/BV1qF2hYTEcu/?vd_source=694affe020ffc5ded6a1bf88970fca8f

—THE END—

觉得有用,麻烦给个赞和在看 

机器视觉与AI深度学习
专注于机器视觉、AI、深度学习等技术最新资讯、实战内容及应用案例的分享,交流!
 最新文章