Adds a frame to an accumulator.
Parameters: |
---|
The function adds the whole image image or its selected region to the accumulator sum :
Calculates the global motion orientation of some selected region.
Parameters: |
|
---|
The function calculates the general motion direction in the selected region and returns the angle between 0 degrees and 360 degrees . At first the function builds the orientation histogram and finds the basic orientation as a coordinate of the histogram maximum. After that the function calculates the shift relative to the basic orientation as a weighted sum of all of the orientation vectors: the more recent the motion, the greater the weight. The resultant angle is a circular sum of the basic orientation and the shift.
Calculates the gradient orientation of a motion history image.
Parameters: |
|
---|
The function calculates the derivatives
and
of
mhi
and then calculates gradient orientation as:
where both
and
signs are taken into account (as in the
CartToPolar
function). After that
mask
is filled to indicate where the orientation is valid (see the
delta1
and
delta2
description).
The function finds the minimum (
) and maximum (
) mhi values over each pixel
neighborhood and assumes the gradient is valid only if
Calculates the optical flow for two images by using the block matching method.
Parameters: |
|
---|
The function calculates the optical
flow for overlapped blocks
pixels each, thus the velocity
fields are smaller than the original images. For every block in
prev
the functions tries to find a similar block in
curr
in some neighborhood of the original block or shifted by (velx(x0,y0),vely(x0,y0)) block as has been calculated by previous
function call (if
usePrevious=1
)
Calculates the optical flow for two images.
Parameters: |
|
---|
The function computes the flow for every pixel of the first input image using the Horn and Schunck algorithm Horn81 .
Calculates the optical flow for two images.
Parameters: |
|
---|
The function computes the flow for every pixel of the first input image using the Lucas and Kanade algorithm Lucas81 .
Calculates the optical flow for a sparse feature set using the iterative Lucas-Kanade method with pyramids.
Parameters: |
|
---|
The function implements the sparse iterative version of the Lucas-Kanade optical flow in pyramids Bouguet00 . It calculates the coordinates of the feature points on the current video frame given their coordinates on the previous frame. The function finds the coordinates with sub-pixel accuracy.
Both parameters prevPyr and currPyr comply with the following rules: if the image pointer is 0, the function allocates the buffer internally, calculates the pyramid, and releases the buffer after processing. Otherwise, the function calculates the pyramid and stores it in the buffer unless the flag CV_LKFLOWPyr_A[B]_READY is set. The image should be large enough to fit the Gaussian pyramid data. After the function call both pyramids are calculated and the readiness flag for the corresponding image can be set in the next call (i.e., typically, for all the image pairs except the very first one CV_LKFLOWPyr_A_READY is set).
Finds the object center, size, and orientation.
Parameters: |
|
---|
The function implements the CAMSHIFT object tracking algrorithm Bradski98 . First, it finds an object center using MeanShift and, after that, calculates the object size and orientation. The function returns number of iterations made within MeanShift .
The CamShiftTracker class declared in cv.hpp implements the color object tracker that uses the function.
Kalman filter state.
- MP¶
- number of measurement vector dimensions
- DP¶
- number of state vector dimensions
- CP¶
- number of control vector dimensions
- state_pre¶
- predicted state (x’(k)): x(k)=A*x(k-1)+B*u(k)
- state_post¶
- corrected state (x(k)): x(k)=x’(k)+K(k)*(z(k)-H*x’(k))
- transition_matrix¶
- state transition matrix (A)
- control_matrix¶
- control matrix (B) (it is not used if there is no control)
- measurement_matrix¶
- measurement matrix (H)
- process_noise_cov¶
- process noise covariance matrix (Q)
- measurement_noise_cov¶
- measurement noise covariance matrix (R)
- error_cov_pre¶
- priori error estimate covariance matrix (P’(k)): P’(k)=A*P(k-1)*At + Q
- gain¶
- Kalman gain matrix (K(k)): K(k)=P’(k)*Ht*inv(H*P’(k)*Ht+R)
- error_cov_post¶
- posteriori error estimate covariance matrix (P(k)): P(k)=(I-K(k)*H)*P’(k)
The structure CvKalman is used to keep the Kalman filter state. It is created by the CreateKalman function, updated by the KalmanPredict and KalmanCorrect functions . Normally, the structure is used for the standard Kalman filter (notation and the formulas below are borrowed from the excellent Kalman tutorial Welch95 )
where:
and
are normally-distributed process and measurement noise, respectively:
that is,
process noise covariance matrix, constant or variable,
measurement noise covariance matrix, constant or variable
In the case of the standard Kalman filter, all of the matrices: A, B, H, Q and R are initialized once after the CvKalman structure is allocated via CreateKalman . However, the same structure and the same functions may be used to simulate the extended Kalman filter by linearizing the extended Kalman filter equation in the current system state neighborhood, in this case A, B, H (and, probably, Q and R) should be updated on every step.
Allocates the Kalman filter structure.
Parameters: |
|
---|
The function allocates CvKalman and all its matrices and initializes them somehow.
Adjusts the model state.
Parameters: |
|
---|
The function adjusts the stochastic model state on the basis of the given measurement of the model state:
where
![]() |
given measurement ( mesurement parameter) |
---|---|
![]() |
Kalman “gain” matrix. |
The function stores the adjusted state at kalman->state_post and returns it on output.
Estimates the subsequent model state.
Parameters: |
|
---|
The function estimates the subsequent stochastic model state by its current state and stores it at kalman->state_pre :
where
![]() |
is predicted state kalman->state_pre , |
---|---|
![]() |
is corrected state on the previous step kalman->state_post (should be initialized somehow in the beginning, zero vector by default), |
![]() |
is external control ( control parameter), |
![]() |
is priori error covariance matrix kalman->error_cov_pre |
![]() |
is posteriori error covariance matrix on the previous step kalman->error_cov_post (should be initialized somehow in the beginning, identity matrix by default), |
The function returns the estimated state.
Synonym for KalmanCorrect
Synonym for KalmanPredict
Finds the object center on back projection.
Parameters: |
|
---|
The function iterates to find the object center given its back projection and initial position of search window. The iterations are made until the search window center moves by less than the given value and/or until the function has done the maximum number of iterations. The function returns the number of iterations made.
Adds the product of two input images to the accumulator.
Parameters: |
|
---|
The function adds the product of 2 images or their selected regions to the accumulator acc :
Updates the running average.
Parameters: |
|
---|
The function calculates the weighted sum of the input image image and the accumulator acc so that acc becomes a running average of frame sequence:
where
regulates the update speed (how fast the accumulator forgets about previous frames).
Segments a whole motion into separate moving parts.
Parameters: |
|
---|
The function finds all of the motion segments and marks them in seg_mask with individual values (1,2,...). It also returns a sequence of CvConnectedComp structures, one for each motion component. After that the motion direction for every component can be calculated with CalcGlobalOrientation using the extracted mask of the particular component Cmp .
Changes the contour position to minimize its energy.
Parameters: |
|
---|
The function updates the snake in order to minimize its total energy that is a sum of internal energy that depends on the contour shape (the smoother contour is, the smaller internal energy is) and external energy that depends on the energy field and reaches minimum at the local energy extremums that correspond to the image edges in the case of using an image gradient.
The parameter criteria.epsilon is used to define the minimal number of points that must be moved during any iteration to keep the iteration process running.
If at some iteration the number of moved points is less than criteria.epsilon or the function performed criteria.max_iter iterations, the function terminates.
The function returns the updated list of points.
Adds the square of the source image to the accumulator.
Parameters: |
---|
The function adds the input image image or its selected region, raised to power 2, to the accumulator sqsum :
Updates the motion history image by a moving silhouette.
Parameters: |
|
---|
The function updates the motion history image as following:
That is, MHI pixels where motion occurs are set to the current timestamp, while the pixels where motion happened far ago are cleared.