ingenuitas/SimpleCV — pull request #365 by jayrambhia (2013-04-01 09:46:47+00:00)
Title: Tracking Completely Restructured.

It was getting too cluttered adding everything in one function, so I have completely restructured them and put in new files. Tracking is still accessible using `Image.track`.

New Features:

Users can specify more parameters which are much more useful in tracking.

For CAMShift Tracking:

- lower range value for thresholding
- upper range value for thresholding
- number of frames to be backtracked.

For LK Tracking:

- maximum number of corners to find features
- quality level of corners
- minimum distance between two corners
- size of the block
- size of search window
- number of pyramid levels

For SURF Tracking:

- maximum distance between two samples for them to be considered as in the same neighborhood.
- The number of samples in a neighborhood for a point to be considered as a core point.
- distance based thresholding of points

**Docs Improved.**

Added new tracking algorithm.

**Median Flow Tracker**. It is much more stable and better than LK tracker. Here's a video where I have implemented it. http://youtu.be/ef7wj7n7qSQ

Using MF Tracker:

ts = []
img.track("mftrack", ts, img0, bb, numM=10, numN=10, winsize=10)

Optional Parameters for Median Flow Tracker:

- numM - Number of points to be tracked in the bounding box
in height direction.

- numN - Number of points to be tracked in the bounding box
in width direction.

- margin - Margin around the bounding box.

- winsize - size of the search window at each pyramid level in LK tracker (in int)