KLT is an implementation, in the C programming language, of a feature tracker for the computer vision community. The source code is in the public domain, available for both commercial and non-commerical use.
The tracker is based on the early work of Lucas and Kanade [1], was developed fully by Tomasi and Kanade [2], and was explained clearly in the paper by Shi and Tomasi [3]. Later, Tomasi proposed a slight modification which makes the computation symmetric with respect to the two images -- the resulting equation is derived in the unpublished note by myself [4]. Briefly, good features are located by examining the minimum eigenvalue of each 2 by 2 gradient matrix, and features are tracked using a Newton-Raphson method of minimizing the difference between the two windows. Multiresolution tracking allows for relatively large displacements between images. The affine computation that evaluates the consistency of features between non-consecutive frames [3] was implemented by Thorsten Thormaehlen several years after the original code and documentation were written.
Some Matlab interface routines: klt_read_featuretable.m
Note: An alternate Lucas-Kanade implementation can be found in Intel's OpenCV library. This implementation, described in the note by Bouguet, does a better job of handling features near the image borders, and it is more computationally efficient (approximately 30% on my desktop system). However, it does not contain the affine consistency check. Another alternative is GPU_KLT, which is an implementation of KLT for a graphics processing unit (GPU), which speeds up the run time considerably. A Matlab implementation of a single template tracker is available at Lucas-Kanade 20 Years On. A Java implementation is available here.