现在从一个最简单的情形来开始我们的讨论。假设有一个原始图像pp,其中含有一些噪声,欲将这些噪声滤出,最简单的、最基本的方法,大家可能会想到采用一些低通滤波器,例如简单平滑(也称BoxFilter)或者高斯平滑等。滤波之后的图像为qq,如下图所示,图像qq中第ii个像素是由图像pp中以第ii个像素为中心的一个窗口ww中的像素确定的。
具体而言,在简单平滑中,图像qq中第ii个像素是由图像pp中以第ii个像素为中心的一个窗口ww中的所有像素取平均而得来的,即
qi=∑j∈wiWij⋅pj
其中,Wij=1/nWij=1/n,nn是窗口ww中的像素数目。也就是说,在简单平滑中,以像素ii为中心的一个窗口ww中的像素具有等同的权值。但是在高斯平滑中,权值WijWij将服从二维的高斯分布,结果导致离像素ii更接近的像素将具有更高的权重,反之离像素ii较远的像素则具有更小的权重。
无论是简单平滑,还是高斯平滑,它们都有一个共同的弱点,即它们都属于各向同性滤波。我们都知道,一幅自然的图像可以被看成是有(过渡平缓的,也就是梯度较小)区域和(过渡尖锐的,也就是梯度较大)边缘(也包括图像的纹理、细节等)共同组成的。噪声是影响图像质量的不利因素,我们希望将其滤除。噪声的特点通常是以其为中心的各个方向上梯度都较大而且相差不多。边缘则不同,边缘相比于区域也会出现梯度的越变,但是边缘只有在其法向方向上才会出现较大的梯度,而在切向方向上梯度较小。
因此,对于各向同性滤波(例如简单平滑或高斯平滑)而言,它们对待噪声和边缘信息都采取一直的态度。结果,噪声被磨平的同时,图像中具有重要地位的边缘、纹理和细节也同时被抹平了。这是我们所不希望看到的。研究人员已经提出了很多Edge-perserving的图像降噪(平滑)算法,例如双边滤波、自适应(维纳)平滑滤波(请参见文献【1】)、基于PM方程的各向异性滤波以及基于TV-norm的降噪算法等。本文将考虑在文献【2】中提出的另外一种Edge-perserving的图像滤波(平滑)算法——导向滤波(GuidedFilter)。当然,通过阅读文献【2】,我们也知道导向滤波的应用不止有Edge-perserving的图像平滑,还包括图像去雾、图像Matting等等。
欢迎关注白马负金羁的博客http://bl