## KLTReplaceLostFeatures()

## `void KLTReplaceLostFeatures(
KLT_TrackingContext tc,
KLT_PixelType *img,
int ncols,
int nrows,
KLT_FeatureList fl);
`

KLTReplaceLostFeatures() takes an image pointed to by `img` and a feature list `fl`. (NOTE: `KLT_PixelType` is, unless modified by the user, an `unsigned char`.) If `tc->sequentialMode` is `TRUE`, and if KLTTrackFeatures() has previously been called, then `img` is ignored and instead the image from `tc->pyramid_last`, `tc->pyramid_last_gradx`, and `tc->pyramid_last_grady` is used. Otherwise, the gradients are computed using a Gaussian of sigma = `tc->grad_sigma`, but not before the image is smoothed with a Gaussian of sigma = `(tc->smooth_sigma_fact * max(tc->window_width, tc->window_height))` if `tc->smoothBeforeSelecting` is `TRUE`.

Essentially, the same computation is performed as that of KLTSelectGoodFeatures(), except that only the lost features are replaced, rather than all the features. All new features are guaranteed to be at least `tc->mindist` pixels away from each other and from all the existing features.

Exactly like KLTSelectGoodFeatures(), if `tc->writeInternalImages` is `TRUE`, then the smoothed image and the image derivatives are written to `"kltimg_sgfrlf.pgm"`, `"kltimg_sgfrlf_gx.pgm"`, and `"kltimg_sgfrlf_gy.pgm"`, respectively.