2011-02-22 21:43:26 +01:00
Motion Analysis and Object Tracking
===================================
2011-04-19 13:41:12 +02:00
.. highlight :: cpp
2011-02-28 22:26:43 +01:00
accumulate
2011-02-22 21:43:26 +01:00
--------------
2011-06-30 00:06:42 +02:00
Adds an image to the accumulator.
2011-06-16 14:48:23 +02:00
.. ocv:function :: void accumulate( InputArray src, InputOutputArray dst, InputArray mask=noArray() )
2011-02-22 21:43:26 +01:00
2011-07-16 11:35:56 +02:00
.. ocv:pyfunction :: cv2.accumulate(src, dst[, mask]) -> None
2011-06-30 00:06:42 +02:00
.. ocv:cfunction :: void cvAcc( const CvArr* src, CvArr* dst, const CvArr* mask=NULL )
.. ocv:pyoldfunction :: cv.Acc(src, dst, mask=None)-> None
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
:param src: Input image as 1- or 3-channel, 8-bit or 32-bit floating point.
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
:param dst: Accumulator image with the same number of channels as input image, 32-bit or 64-bit floating-point.
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
:param mask: Optional operation mask.
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
The function adds `` src `` or some of its elements to `` dst `` :
2011-02-22 21:43:26 +01:00
.. math ::
2011-02-26 12:05:10 +01: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-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
The function supports multi-channel images. Each channel is processed independently.
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
The functions `` accumulate* `` can be used, for example, to collect statistics of a scene background viewed by a still camera and for the further foreground-background segmentation.
2011-02-22 21:43:26 +01:00
2011-06-30 00:06:42 +02:00
.. seealso ::
2011-07-01 14:09:39 +02:00
:ocv:func: `accumulateSquare` ,
:ocv:func: `accumulateProduct` ,
:ocv:func: `accumulateWeighted`
2011-04-30 15:52:10 +02:00
2011-06-30 00:06:42 +02:00
2011-02-22 21:43:26 +01:00
2011-02-28 22:26:43 +01:00
accumulateSquare
2011-02-22 21:43:26 +01:00
--------------------
2011-06-30 00:06:42 +02:00
Adds the square of a source image to the accumulator.
2011-06-16 14:48:23 +02:00
.. ocv:function :: void accumulateSquare( InputArray src, InputOutputArray dst, InputArray mask=noArray() )
2011-02-22 21:43:26 +01:00
2011-07-16 11:35:56 +02:00
.. ocv:pyfunction :: cv2.accumulateSquare(src, dst[, mask]) -> None
2011-06-30 00:06:42 +02:00
.. ocv:cfunction :: void cvSquareAcc( const CvArr* src, CvArr* dst, const CvArr* mask=NULL )
.. ocv:pyoldfunction :: cv.SquareAcc(src, dst, mask=None)-> None
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
:param src: Input image as 1- or 3-channel, 8-bit or 32-bit floating point.
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
:param dst: Accumulator image with the same number of channels as input image, 32-bit or 64-bit floating-point.
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
:param mask: Optional operation mask.
2011-02-22 21:43:26 +01:00
2011-06-30 00:06:42 +02:00
The function adds the input image `` src `` or its selected region, raised to a power of 2, to the accumulator `` dst `` :
2011-02-22 21:43:26 +01:00
.. math ::
2011-02-26 12:05:10 +01: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-22 21:43:26 +01:00
2011-06-30 00:06:42 +02:00
The function supports multi-channel images. Each channel is processed independently.
2011-04-24 23:02:14 +02:00
2011-06-30 00:06:42 +02:00
.. seealso ::
2011-07-01 11:39:22 +02:00
:ocv:func: `accumulateSquare` ,
:ocv:func: `accumulateProduct` ,
:ocv:func: `accumulateWeighted`
2011-02-22 21:43:26 +01:00
2011-06-30 00:06:42 +02:00
2011-02-22 21:43:26 +01:00
2011-02-28 22:26:43 +01:00
accumulateProduct
2011-02-22 21:43:26 +01:00
---------------------
2011-06-30 00:06:42 +02:00
Adds the per-element product of two input images to the accumulator.
2011-06-16 14:48:23 +02:00
.. ocv:function :: void accumulateProduct( InputArray src1, InputArray src2, InputOutputArray dst, InputArray mask=noArray() )
2011-02-22 21:43:26 +01:00
2011-07-16 11:35:56 +02:00
.. ocv:pyfunction :: cv2.accumulateProduct(src1, src2, dst[, mask]) -> None
2011-06-30 00:06:42 +02:00
.. ocv:cfunction :: void cvMultiplyAcc( const CvArr* src1, const CvArr* src2, CvArr* dst, const CvArr* mask=NULL )
.. ocv:pyoldfunction :: cv.MultiplyAcc(src1, src2, dst, mask=None)-> None
2011-02-22 21:43:26 +01:00
2011-06-30 00:06:42 +02:00
:param src1: First input image, 1- or 3-channel, 8-bit or 32-bit floating point.
2011-02-22 21:43:26 +01:00
2011-06-30 00:06:42 +02:00
:param src2: Second input image of the same type and the same size as ``src1`` .
2011-07-07 13:23:51 +02:00
2011-04-24 23:02:14 +02:00
:param dst: Accumulator with the same number of channels as input images, 32-bit or 64-bit floating-point.
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
:param mask: Optional operation mask.
2011-02-22 21:43:26 +01:00
2011-06-30 00:06:42 +02:00
The function adds the product of two images or their selected regions to the accumulator `` dst `` :
2011-02-22 21:43:26 +01:00
.. math ::
2011-02-26 12:05:10 +01: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-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
The function supports multi-channel images. Each channel is processed independently.
2011-06-30 00:06:42 +02:00
.. seealso ::
2011-07-01 11:39:22 +02:00
:ocv:func: `accumulate` ,
:ocv:func: `accumulateSquare` ,
:ocv:func: `accumulateWeighted`
2011-02-22 21:43:26 +01:00
2011-06-30 00:06:42 +02:00
2011-02-22 21:43:26 +01:00
2011-02-28 22:26:43 +01:00
accumulateWeighted
2011-02-22 21:43:26 +01:00
----------------------
2011-06-30 00:06:42 +02:00
Updates a running average.
2011-06-16 14:48:23 +02:00
.. ocv:function :: void accumulateWeighted( InputArray src, InputOutputArray dst, double alpha, InputArray mask=noArray() )
2011-02-22 21:43:26 +01:00
2011-07-16 11:35:56 +02:00
.. ocv:pyfunction :: cv2.accumulateWeighted(src, dst, alpha[, mask]) -> None
2011-06-30 00:06:42 +02:00
.. ocv:cfunction :: void cvRunningAvg( const CvArr* src, CvArr* dst, double alpha, const CvArr* mask=NULL )
.. ocv:pyoldfunction :: cv.RunningAvg(src, dst, alpha, mask=None)-> None
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
:param src: Input image as 1- or 3-channel, 8-bit or 32-bit floating point.
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
:param dst: Accumulator image with the same number of channels as input image, 32-bit or 64-bit floating-point.
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
:param alpha: Weight of the input image.
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
:param mask: Optional operation mask.
2011-02-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
The function calculates the weighted sum of the input image `` src `` and the accumulator `` dst `` so that `` dst `` becomes a running average of a frame sequence:
2011-02-22 21:43:26 +01:00
.. math ::
2011-02-26 12:05:10 +01: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-22 21:43:26 +01:00
2011-04-24 23:02:14 +02:00
That is, `` alpha `` regulates the update speed (how fast the accumulator "forgets" about earlier images).
The function supports multi-channel images. Each channel is processed independently.
2011-02-22 21:43:26 +01:00
2011-06-30 00:06:42 +02:00
.. seealso ::
2011-07-01 11:39:22 +02:00
:ocv:func: `accumulate` ,
:ocv:func: `accumulateSquare` ,
:ocv:func: `accumulateProduct`