Bootstrap

均值滤波器类型_图像处理基础(3):均值滤波器及其变种

均值滤波器可以归为低通滤波器,是一种线性滤波器,其输出为邻域模板内的像素的简单平均值,主要用于图像的模糊和降噪。

均值滤波器的概念非常的直观,使用滤波器窗口内的像素的平均灰度值代替图像中的像素值,这样的结果就是降低图像中的“尖锐”变化。这就造成,均值滤波器可以降低噪声的同时,也会模糊图像的边缘。均值滤波器的处理结果是过滤掉图像中的“不相关”细节,其中“不相关”细节指的是:与滤波器模板尺寸相比较小的像素区域。

根据均值计算方法的不同,均值滤波器有以下几种:

算术均值滤波器

几何均值滤波器

谐波均值滤波器

逆谐波均值滤波器

算术均值滤波器 Arithmetic Mean Filter

这是最简单的均值滤波器,可以去除均匀噪声和高斯噪声,但会对图像造成一定程度的模糊。

令\(S_xy\)表示中心点在\((x,y)\)处,大小为\(m \times n\)的滤波器窗口。算术均值滤波器就是简单的计算窗口区域的像素均值,然后将均值赋值给窗口中心点处的像素:

\[ f(x,y) = \frac{1}{mn}\sum_{(x,y) \in S_{xy}} g(s,t)

\]

其中,\(g(s,t)\)表示原始图像,\(f(x,y)\)表示均值滤波后得到的图像。

基于上述公式,可以很容易的得到的算术均值滤波器的窗口模板,下面以\(3 \times 3\)为例

\[ \frac{1}{9} \left [

\begin{array}{c}

1 & 1 & 1 \\ 1& 1 & 1 \\ 1 & 1 & 1

\end{array}

\right ]

\]

在OpenCV中,函数blur表示使用该模板的均值滤波器,其声明如下:

void blur( InputArray src, OutputArray dst,

Size ksize, Point anchor = Point(-1,-1),

int borderType = BORDER_DEFAULT );

src是输入图像,dst为输出图像;ksize是滤波器模板窗口的大小;后两个参数分别表示,待处理像素在模板窗口的位置,默认值是窗口的中心位置,所以窗口的大小一般为奇数,最后一个参数表示对编解类型的处理,使用默认值即可。其调用示例blur(src,dst,Size(5,5),模板窗口的大小为\(5 \times 5\)。

盒状滤波器

当滤波器的模板的所有的系数都相等时称之为盒状滤波器 Box Filter。其使用的模板如下(\(3 \times 3\) 为例):

\[ \alpha \left [

\begin{array}{c}

;