导向滤波(Guided Filtering)和双边滤波(BF)、最小二乘滤波(WLS)是三大边缘保持(Edge-perserving)滤波器。
引导滤波(导向滤波)的目的是,保持双边滤波的优势(有效保持边缘,非迭代计算),而克服双边滤波的缺点(设计一种时间复杂度为 O(1) 的快速滤波器,而且在主要边缘附近没有梯度的变形)。
本次实验采取的方法是:引导滤波器的保留边缘平滑滤波器应用。
引导滤波简介
引导滤波器的作用是:输入原始图像P和引导图像 I,输出图像 Q,使得 Q 与 P大体上相似,但边缘和纹理部分与I相似。其典型应用有两个:保边图像平滑,抠图。
中心思想是局部线性,即图像看作是非解析的二维函数,但其中相邻近的(某个窗口内)的像素点可认为是解析的线性函数。因此,可通过线性参数将图像I线性变化为I2。
其变换公式为:
其中,i表示的是像素点,ωk为第k个窗口,ak和bk表示在第k个窗口中计算出的系数。
对于3*3的窗口而言,第i个像素会通过9个窗口,最终的qi取平均值。
由上述的线性关系可得:
即在某个像素点上,输出图像Q和引导图I有着一样的梯度,因此可以保留I中的细节和纹理(梯度,边缘)部分。只要求解系数a,b即可得到Q
下一步是求出线性函数的系数,也就是线性回归,即希望拟合函数的输出值 q与真实值 p 之间的差距最小,转化为最优化问题,也就是让下式最小:
通过最小二乘法,计算可得:
其中,μk和σk^2分别表示引导图像I在窗口ωk中的平均值和方差,∣ω∣是窗口ωk中像素点的个数,pk= 1/|ω| ∑_(i∈ω_k)p_i 是输入图像在窗口ωk中的平均值。
引导滤波的保边平滑滤波器作用
当输入图像和引导图像为同一张图像时,即P = I时,可以理解为,Q保留P中的纹理(梯度,边缘)部分,而平滑掉其他部分(噪声)。
当I = P时,
其中,σk^2表示P在窗口ωk中的方差。
pk表示P在窗口ωk中的均值。
ε为调整对边缘检测敏感度的参数。值越大越不敏感。
存在两种情况:1、平滑区域时,σk^2 << ε,ak ≈ 0,bk ≈pk,相当于均值滤波器,平滑图像。
2、高方差(边缘)区域时,σk^2 >> ε,ak ≈ 1,bk ≈ 0,相当于保留梯度。
灰度图的保边平滑:
读取图像后,灰度图矩阵转化为double类型。计算完系数a,b后,组合的线性方程直接作用于灰度图矩阵。
彩色图像的保边平滑:
读取图像后,图像矩阵转化为double类型。将rgb三通道提取出来,计算完系数a,b后,组合的线性方程分别计算三个通道的矩阵,最后再用cat函数截切在一起。
代码已上传资源,以下展示结果。