# SwisTrack/Components

The following table lists all components integrated into SwisTrack, along with their properties. Click on a component name to obtain the detailed component documentation. The channel columns indicate whether the component reads (R), writes (W) or modifies (E) a channel.

### Trigger

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| Timer Trigger | T | | | | | | |
| Trigger Counter | T | | | | | | |

### Input

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| USB Camera | | W | | | | | |
| GigE Camera | T | W | | | | | |
| Proselica GigE Camera | | W | | | | | |
| 1394 Camera (FireWire) | | W | | | | | |
| Input from AVI File | | W | | | | | |
| Input Static Image from a File | | W | | | | | |

### Input Conversion

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| Conversion to Grayscale | | R | | W | | | |
| Conversion to Color (BGR) | | R | W | | | | |
| Conversion from Bayer pattern to BGR | | | W | R | | | |

### Preprocessing (color)

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| Channel Arithmetic | | | R | W | | | |
| Background Subtraction (color) | | | E | | | | |
| Background Subtraction in the Hue Band (color) | | | R | W | | | |
| Adaptive Background Subtraction (color) | | | E | | | | |
| Adaptive Background Subtraction (color, median) | | | E | | | | |
| Adaptive Background Subtraction Based on Cheung and Kamath (2005) | | | E | | | | |
| Specific Color Subtraction | | | E | | | | |
| Mask (color) | | | E | | | | |
| Blur | | | E | | | | |
| Color Swapper | | | E | | | | |

### Preprocessing (grayscale)

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| Background Subtraction (grayscale) | | | | E | | | |
| Adaptive Background Subtraction (grayscale) | | | | E | | | |
| Mask (grayscale) | | | | E | | | |

### Thresholding (color)

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| Threshold (color) | | | R | | W | | |
| Threshold with Independent Threshold Values (color) | | | R | | W | | |
| Double Threshold (color) | | | R | | W | | |
| Adaptive Threshold | | | R | | W | | |

### Thresholding (gray)

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| Threshold (grayscale) | | | | R | W | | |

### Preprocessing (binary)

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| Image Dilation | | | | | E | | |
| Image Erosion | | | | | E | | |
| Mask (binary) | | | | | E | | |
| Blob Selection | | | | | E | | |
| Move Binary to Color | | W | | | R | | |

### Particle Detection

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| Blob detection | | | | | R | W | |
| ID Reader (Ring) | | | | R | | E | |
| Two-Colored Marker Detection | | W | | | | W | |
| Red-Green Marker Detection | | W | | | | W | |
| Particle Simulation | | W | | | | W | |
| Motion Template Particle Detector | | | R | | R | W | |
| Filter Particles | | | | | | E | |

### Calibration

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| Calibration with a linear model | | | | | | E | |
| Calibration with TSAI | | | | | | E | |
| Calibration with TSAI (file) | | | | | | E | |

### Tracking

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| Nearest neighbor tracking (SwisTrack 3) | | | | | | R | W |
| Nearest neighbor tracking | | | | | | E | W |
| Dynamic Nearest Neighbor Tracking | | | | | | E | W |
| Cam Shift Tracking | | | R | | | W | W |
| Track Smoothing | | | | | | | E |
| Kalman Filter | | | | | | | E |

### Output

| Component name | Trigger? | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) | Processing channels (data structures) |
| Component name | Trigger? | Input | Color image | Grayscale image | Binary image | Particles | Tracks |
| Output Particles to a Text File | | | | | | | R |
| Output to AVI File | | | R | R | R | | |
| Output to Image Sequence | | | R | R | R | | |
| Output Image Statistics (binary) | | | | | R | | |
| Output Image Statistics (color) | | | R | | | | |
| Output Image Statistics (grayscale) | | | | R | | | |
| Manually Mark Frames | | | | | | | |
| Output Particles | | R | | | | R | |
| Output Particles to an SQLite database | | | | | | R | R |

### Remark

Note that this table can be automatically created by SwisTrack. If you find errors please contact the SwisTrack maintainers.