拉普拉斯金字塔融合用于合并两张已经对齐的图像。宽缓的亮度变化和窄小的纹理边缘需要不同的过渡范围。一条硬切缝容易留下亮度跳变,把两张图在很宽的范围直接平均,又可能让细边缘显得模糊或重叠。多尺度方法先拆开这两类变化,再在各自的图层里处理拼接缝。
用当前图像滤波并缩小尺寸,就得到下一层较粗的高斯图像。层数增加时,小尺度纹理逐渐被抑制,亮度的大范围变化仍能在低分辨率图上看见。OpenCV 的图像金字塔教程用缩小和扩大操作说明这种变化。把一张已经缩小的图再放大到原来尺寸,像素网格恢复了,被减弱的纹理不会自动回来。
两张待融合图各有自己的高斯金字塔。对应层使用相同大小的像素网格和同一组空间坐标。若要合并两张拍摄范围不同的图,首先要确定它们在哪些区域表示同一位置,再让对应层在该位置比较。这里所讨论的权重用于分配两张已有图的贡献,画面配准仍是前置环节。
Burt 和 Adelson 的方法把下一层粗图扩大到当前层尺寸,然后从当前高斯图中减去它。这个差值就是当前拉普拉斯层。比如某个位置的当前像素为 70,扩大后的粗图像素为 85,则该位置残差为 −15。相加可以恢复 70。残差有正有负,表达细节相对于粗略预测变亮或变暗的部分。
最粗层已经没有更小的一层可作预测,算法保留那张粗图作为底图。图一显示粗层扩大后与有符号残差相加的例子。为了让这项相加关系成立,计算残差时的数据表示应当保留负值。例如用于显示的无符号八位图像,和用于存放有符号差值的中间数组有不同职责。

原论文把区域表示为二值掩模。一侧取一,另一侧取零。对掩模建立高斯金字塔后,靠近区域边缘的值可以位于零和一之间。在任一对应层,掩模值乘上图 A 的拉普拉斯系数,余下的权重乘上图 B 的系数。若权重为四分之三,当前位置来自 A 的系数占四分之三,来自 B 的系数占四分之一。
粗层的一个采样间隔对应原图上较宽的一段距离,所以把粗层过渡换算到原图尺度时,它通常比细层的过渡更宽。这样,大范围亮度差可以逐渐过渡,较细的纹理只在更窄的区域混合。图二用两个过渡轮廓显示这一点,横轴统一用原图位置作参照。

完成对应层融合后,就得到一组新的金字塔层。算法从最粗的合成图开始,先把它扩大到下一层大小,再加上该层已经融合好的细节。每完成一次相加,就恢复到更细一层的网格。重复到原始分辨率时,底图的大尺度变化和各层保留的细节已经回到同一幅图里。
OpenCV 教程用两张图的左右区域说明分层取样和逐级重建。原论文还给出了任意形状区域的高斯掩模权重表达,两种例子都利用从粗层向细层的重建。规则的中间接缝便于观察每层取哪边,任意区域的掩模则允许接缝随已经确定的边界形状变化。
如果两幅输入图把同一条窄线放在不同位置,细节层里就会在不同像素保留它。层间相加仍会带回这些细节,因而重叠区域可能留下重影。区分这一现象和宽缓的亮度过渡,有助于把误差追到正确的处理阶段。比较输出时,可以分别看对齐后的输入、掩模的位置、对应层的残差和最终重建。
Burt 与 Adelson 的多分辨率拼接论文给出残差、权重与重建方法。OpenCV 4.12 图像金字塔教程原文说明分层拼接示例。另见机器视觉资料与技术文章目录。