boxFilter in opencv

void boxFilter(const Mat& src, Mat& dst,int ddepth,Size ksize,Point anchor=Point(-1, -1),bool normalize=true,int borderType=BORDER_DEFAULT)

Smoothes image using box filter

Parameters:
  • src – The source image
  • dst – The destination image; willhave the same size and the same type as src
  • ksize – The smoothing kernelsize
  • anchor – The anchor point. Thedefault value Point(-1,-1) means that theanchor is at the kernel center
  • normalize – Indicates, whetherthe kernel is normalized by its area or not
  • borderType – The border mode usedto extrapolate pixels outside of the image

The function smoothes the image using the kernel:

\texttt{K} = \alpha \begin{bmatrix} 1 & 1 & 1 & \cdots & 1 & 1 \\ 1 & 1 & 1 & \cdots & 1 & 1 \\ \hdotsfor{6} \\ 1 & 1 & 1 & \cdots & 1 & 1 \end{bmatrix}

where

    

\alpha = \fork{\frac{1}{\texttt{ksize.width*ksize.height}}}{when \texttt{normalize=true}}{1}{otherwise}

Unnormalized box filter is useful for computing various integralcharacteristics over each pixel neighborhood, such as covariationmatrices of image derivatives (used in dense optical flowalgorithms, etc.). If you need to compute pixel sums overvariable-size windows, use integral().

See also: boxFilter(),bilateralFilter(),GaussianBlur(),medianBlur(),integral().

posted @ 2014-05-21 20:26  eaglediao  阅读(237)  评论(0编辑  收藏  举报