Video recording (ImageJ compatible) Filtering (AbstractFilter class) Binarization (AbstractThresholder class) Postprocessing (PostProcessor interface) Blob detection (BlobDetector interface) Blob comparison (BlobComparator interface) Blob (BaseBlob class) XY coordinates (ObjectLocation class) In-zone data collection (ZoneSettings class & ParameterController class) Show Results (ImageJ ResultsTable) by Zone by Parameter Tracking parameters (AbstractTrackingParameter class) Tracking zones (ZoneUnit interface) ZoneUnit combination (SetOperator class) Creating Geometric primitives (primitives class)

This ImageJ API consists of three main modules, each capable of operating independently. For more information on the different processes, click on the appropriate element of the figure to the left (and below).

The Tracker module processes the input video and locates the observed animal, based on five consecutive steps (filtering, binarization, post- processing, blob detection, blob comparison). Our API provides a certain number and type of algorithms for the tracking steps but if needed, the existing toolkit can be modified and extended without breaking the image processing chain.

The Tracking Analyzer module offers the use of standard measurement parameters (e.g. distance, time, speed) as output values but custom-made special parameters, such as angle preference in the Morris Water Maze, can be also implemented. Output values are handled by the ImageJ Results Table, with a possibility to group values according to custom-made aspects.

The Zone Designer module provides extended possibilities to freely define individual or overlapping zones within the observation area using geometric primitive objects.