参考:
python版本: https://blog.csdn.net/FireMicrocosm/article/details/48489939
c++版本: https://www.cnblogs.com/riddick/p/8922381.html
原理: https://www.jianshu.com/p/3185cca3f082 (这篇原理很清晰)
算法原理
现在要融合ori_img1 和 ori_img2.
1)首先建立两幅图像高斯金字塔,然后建立一定层数的拉普拉斯金字塔。拉普拉斯金字塔的层数越高,融合效果越好。层数N作为一个参数。
2)传入一个mask掩膜,代表了融合的位置。比如说想在两图的中间进行融合,那么掩膜图像的左半为255,右半为0,反过来是一样的。根据这个mask建立一个高斯金字塔,用于后续融合,层数为N+1。
3)根据mask将两幅图像的拉普拉斯金字塔的图像进行相加,mask为权值。相加的结果即为一个新的金字塔。同时,两幅图像的高斯金字塔的N+1层也进行这个操作,记这个图像为IMG1。(mask的前N层用于计算待融合的两幅图像的 laplacian 金字塔的N层残差特征,第N+1层用于计算待融合的两幅图的 Gaussian 金字塔的第 N+1层,也就是得到 IMG1)