参考该博客 三.浅出 部分
线性滤波输出像素值,f为输入图像,h为核 g ( i , j ) = ∑ k , l f ( i + k , j + l ) ∗ h ( k , l ) g(i,j)=\sum\limits_{k,l} f(i+k,j+l)*h(k,l) g(i,j)=k,l∑f(i+k,j+l)∗h(k,l)
参数
src输入图像dst目标图像ddepth输出图像的深度,-1代表使用原图深度ksize内核的大小,用Size(w,h)表示,w为像素宽度,h为像素高度anchor锚点,如果该点坐标为负值表示取核的中心点为锚点normalize内核是否被其区域归一化borderType用于推断图像外部像素的某种边界模式该函数所用的核为 K = a [ 1 ⋯ 1 ⋮ ⋱ ⋮ 1 ⋯ 1 ] K=a \left [ \begin{matrix} 1 & \cdots & 1 \\ \vdots & \ddots & \vdots \\ 1 & \cdots & 1 \end{matrix} \right ] K=a⎣⎢⎡1⋮1⋯⋱⋯1⋮1⎦⎥⎤ 当normalize=true时, a = 1 w ∗ h a=\frac{1}{w*h} a=w∗h1 当normalize=false时, a = 1 a=1 a=1 下面说到的均值滤波其实就是normalize=true时的方框滤波
实际上这个函数基本上就是直接调用了boxFilter()
void blur(InputArray src, OutputArray dst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT);参数基本同上