2011-02-23 04:43:26 +08:00
Motion Analysis and Object Tracking
===================================
.. index :: accumulate
2011-03-01 05:26:43 +08:00
accumulate
2011-02-23 04:43:26 +08:00
--------------
2011-03-01 05:26:43 +08:00
.. c:function :: void accumulate( const Mat\& src, Mat\& dst, const Mat\& mask=Mat() )
2011-02-23 04:43:26 +08:00
Adds image to the accumulator.
2011-02-26 19:05:10 +08:00
:param src: The input image, 1- or 3-channel, 8-bit or 32-bit floating point
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
:param dst: The accumulator image with the same number of channels as input image, 32-bit or 64-bit floating-point
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
:param mask: Optional operation mask
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
The function adds `` src `` , or some of its elements, to `` dst `` :
2011-02-23 04:43:26 +08:00
.. math ::
2011-02-26 19:05:10 +08:00
\texttt{dst} (x,y) \leftarrow \texttt{dst} (x,y) + \texttt{src} (x,y) \quad \text{if} \quad \texttt{mask} (x,y) \ne 0
2011-02-23 04:43:26 +08:00
The function supports multi-channel images; each channel is processed independently.
2011-02-26 19:05:10 +08:00
The functions `` accumulate* `` can be used, for example, to collect statistic of background of a scene, viewed by a still camera, for the further foreground-background segmentation.
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
See also:
:func: `accumulateSquare` ,:func: `accumulateProduct` ,:func: `accumulateWeighted`
2011-02-23 04:43:26 +08:00
.. index :: accumulateSquare
2011-03-01 05:26:43 +08:00
accumulateSquare
2011-02-23 04:43:26 +08:00
--------------------
2011-03-01 05:26:43 +08:00
.. c:function :: void accumulateSquare( const Mat\& src, Mat\& dst, const Mat\& mask=Mat() )
2011-02-23 04:43:26 +08:00
Adds the square of the source image to the accumulator.
2011-02-26 19:05:10 +08:00
:param src: The input image, 1- or 3-channel, 8-bit or 32-bit floating point
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
:param dst: The accumulator image with the same number of channels as input image, 32-bit or 64-bit floating-point
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
:param mask: Optional operation mask
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
The function adds the input image `` src `` or its selected region, raised to power 2, to the accumulator `` dst `` :
2011-02-23 04:43:26 +08:00
.. math ::
2011-02-26 19:05:10 +08:00
\texttt{dst} (x,y) \leftarrow \texttt{dst} (x,y) + \texttt{src} (x,y)^2 \quad \text{if} \quad \texttt{mask} (x,y) \ne 0
2011-02-23 04:43:26 +08:00
The function supports multi-channel images; each channel is processed independently.
2011-02-26 19:05:10 +08:00
See also:
:func: `accumulateSquare` ,:func: `accumulateProduct` ,:func: `accumulateWeighted`
2011-02-23 04:43:26 +08:00
.. index :: accumulateProduct
2011-03-01 05:26:43 +08:00
accumulateProduct
2011-02-23 04:43:26 +08:00
---------------------
2011-03-01 05:26:43 +08:00
.. c:function :: void accumulateProduct( const Mat\& src1, const Mat\& src2, Mat\& dst, const Mat\& mask=Mat() )
2011-02-23 04:43:26 +08:00
Adds the per-element product of two input images to the accumulator.
2011-02-26 19:05:10 +08:00
:param src1: The first input image, 1- or 3-channel, 8-bit or 32-bit floating point
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
:param src2: The second input image of the same type and the same size as ``src1``
:param dst: Accumulator with the same number of channels as input images, 32-bit or 64-bit floating-point
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
:param mask: Optional operation mask
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
The function adds the product of 2 images or their selected regions to the accumulator `` dst `` :
2011-02-23 04:43:26 +08:00
.. math ::
2011-02-26 19:05:10 +08:00
\texttt{dst} (x,y) \leftarrow \texttt{dst} (x,y) + \texttt{src1} (x,y) \cdot \texttt{src2} (x,y) \quad \text{if} \quad \texttt{mask} (x,y) \ne 0
2011-02-23 04:43:26 +08:00
The function supports multi-channel images; each channel is processed independently.
2011-02-26 19:05:10 +08:00
See also:
:func: `accumulate` ,:func: `accumulateSquare` ,:func: `accumulateWeighted`
2011-02-23 04:43:26 +08:00
.. index :: accumulateWeighted
2011-03-01 05:26:43 +08:00
accumulateWeighted
2011-02-23 04:43:26 +08:00
----------------------
2011-03-01 05:26:43 +08:00
.. c:function :: void accumulateWeighted( const Mat\& src, Mat\& dst, double alpha, const Mat\& mask=Mat() )
2011-02-23 04:43:26 +08:00
Updates the running average.
2011-02-26 19:05:10 +08:00
:param src: The input image, 1- or 3-channel, 8-bit or 32-bit floating point
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
:param dst: The accumulator image with the same number of channels as input image, 32-bit or 64-bit floating-point
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
:param alpha: Weight of the input image
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
:param mask: Optional operation mask
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
The function calculates the weighted sum of the input image `` src `` and the accumulator `` dst `` so that `` dst `` becomes a running average of frame sequence:
2011-02-23 04:43:26 +08:00
.. math ::
2011-02-26 19:05:10 +08:00
\texttt{dst} (x,y) \leftarrow (1- \texttt{alpha} ) \cdot \texttt{dst} (x,y) + \texttt{alpha} \cdot \texttt{src} (x,y) \quad \text{if} \quad \texttt{mask} (x,y) \ne 0
2011-02-23 04:43:26 +08:00
2011-02-26 19:05:10 +08:00
that is, `` alpha `` regulates the update speed (how fast the accumulator "forgets" about earlier images).
2011-02-23 04:43:26 +08:00
The function supports multi-channel images; each channel is processed independently.
2011-02-26 19:05:10 +08:00
See also:
:func: `accumulate` ,:func: `accumulateSquare` ,:func: `accumulateProduct`