# Track moving objectsđź”—

This tool takes in a set of points representing the locations of an arbitrary number of moving object at a time instant. It forms movement trajectories by connecting points in successive point sets based on a motion model. The trajectory estimates are updated each time new data comes in. The algorithm tries to find a set of trajectories that optimally describes the movement of the series of points in the used motion model.

## Inputsđź”—

`points`

: The coordinates of detected moving objects as a N-by-2 matrix.`classIndices`

: An optional classification for each point as a N-by-1 matrix of integers. This information is not necessary, but helps if different objects can be reliably distinguished before tracking.`maxStartDistance`

: The maximum distance between two points in successive sets that can be considered â€śclose enoughâ€ť to start a new trajectory. This limit only applies until a movement estimate is available.`maxJoiningDistance`

: The maximum distance between an input point and the predicted location of an object that can still be considered a candidate for extending a trajectory.`maxPredictionLength`

: The maximum number of past measurements the tracker will consider in its movement estimate. A larger value makes movement estimates less noisy but also imposes some stiffness to the trajectories.`maxStopTime`

: The maximum number of time units a trajectory will be kept in memory if no new points can be connected to it.`time`

: A time stamp for the measurement. Can be either an integer representing abstract time units or a DateTime object. If this input is not connected, the tool assumes that the measurement interval is constant.`minTrajectoryLength`

: The minimum number of connected points that will be reported as a trajectory.`maxTrajectoryLength`

: The maximum number of points connected to a trajectory before it is pruned and a new trajectory is started.

## Outputsđź”—

`trajectories`

: The current set of estimated trajectories. A N-by-2 matrix of point coordinates that contains M trajectories with a variable number of points.`blockSize`

: The number of points in each of the trajectories stored in*trajectories*. An M-by-1 integer matrix in which the number of rows (M) corresponds to the number of detected trajectories. Values in this matrix are between*minTrajectoryLength*and*maxTrajectoryLength*, inclusive.`classIndices`

: The class index of each trajectory as an M-by-1 integer matrix. If class indices were not provided as input, the matrix is all zeros.`times`

: An array of time stamps, one for each point in*trajectories*.