给定图像I及其Hard Mask M,其中M(x)∈{0,1} ,M(x)=0表示x属于前景,M(x)=1表示x属于背景,图像中某点x到前面Hard Mask的测地距离为
???d(a,b)表示的是两个点之间像素值与像素位置之间的调和平均,而双边滤波也是用像素值以及像素位置表示,这两者都加入了像素值和像素位置,有什么区别吗?
基于硬掩膜做保边滤波:弄出255张掩膜,图像里面所有像素值为0的点在第一张掩膜的相应位置像素值标为0,以此类推,255张掩膜都这么做。再算图像里面每一个像素到0~255张掩膜的测地距离,e的-测地距离次方*对应像素值,再叠加起来。
针对Soft Mask的距离,考虑每个像素点的Mask值,测地距离为
基于soft mask做保边滤波,把所有的像素分成了k个level (μ1,μ2…μk),根据这k个level计算出k张Soft Mask
所以像素值离均值越近越近,执行度越高。
计算每个像素点到每个Soft Mask的测地距离
并计算权重为:
滤波后的图像为:
用mask强行融合两个图像的话,边界交界处不平滑,有个拼接的缝。局部拉普拉斯滤波可以得到自然的处理结果。
利用局部拉普拉斯滤波图像融合过程:
(1) 为两幅图像生成拉普拉斯金字塔;
(2) 为Mask图像生成高斯金字塔;
(3) 将两幅图像的拉普拉斯金字塔按照Mask逐层合成一个拉普拉斯金字塔;好处:拼缝处高斯模糊了。
(4)重构融合的图像。如此接缝处是平滑的,并且包含各个尺度的特征。
???在重构拉普拉斯金字塔的时候我们要得到一些高频信息以及低频信息,然而高频信息却是通过高斯金字塔图层减去拉普拉斯金字塔图层来得到的,这样显然是合理的。但是为什么不用拉普拉斯变换来直接得到这些高频细节信息呢?拉普拉斯变换不就是通过拉普拉斯算子对图片进行判断来保留一些高频信息吗。
如果一个像素与其高斯滤波后的对应像素差异较大,那么该像素就在边缘上;如果一个像素与其高斯滤波后的对应像素差异较小,则其为细节。由此定义一个对于细节处理的函数与一个对于边缘处理的函数:
其中i为某个像素,g是高斯滤波后i对应的像素;α控制模糊的程度(对小纹理区域梯度压制的程度),β控制动态范围扩展(缩小)的程度;σr是分辨细节和边缘的阈值。
图一:某一点梯度在[g-sigma, g+sigma]范围内,是细节,α大于1,压制;梯度在[g-sigma, g+sigma]之外,不变。
图二:某一点梯度在[g-sigma, g+sigma]范围内,是细节,α小于1,扩展;梯度在[g-sigma, g+sigma]之外,不变。
第三个图是对图像在[g-sigma, g+sigma]之外做色调映射,α=1于是[g-sigma, g+sigma]范围内不变,而β在0-1之间,于是把动态范围缩小;
第四个是对图像在[g-sigma, g+sigma]之外做反色调映射。α=1于是[g-sigma, g+sigma]范围内不变,而β大于1,于是把动态范围放大扩展;
最后一个图是对图像在[g-sigma, g+sigma]之外做色调映射,在[g-sigma, g+sigma]之内做细节增强。在[g-sigma, g+sigma]之内α属于0~1,对该区域梯度压制,而β在0-1之间,于是把动态范围缩小。
双边滤波器:
未归一化双边滤波器:
归一化系数:
归一化与未归一化的双边滤波器关系:
其中,
这个式子的意义就是未归一化的双边滤波结果是归一化的双边滤波结果和输入图像的加权平均。所以在一些边缘区域,αp比较小,这样未归一化双边滤波的输出结果就更像原图像一些,通常来说未归一化双边滤波会比归一化双边滤波软一些。
P1的边缘有伪像,p3是未归一化的双边滤波器,边缘没有伪像,p4是拉普拉斯滤波,更加的sharp。