Log of Changes
- Version 1.3.4 (30 Aug 2007)
- Although the factor of 2.0 in _compute2by1ErrorVector (introduced in Version 1.3.2)
is theoretically correct, in practice the value of 1.0 (which was used implicitly in all
earlier versions) tends to do a better job at avoiding overshooting. A parameter called
step_factor has been added to the tracking context to allow the flexibility of
choosing this factor (which affects the step size in Newton's method). The default is
set to 1.0.
-- Thanks to
Shrinivas Pundlik
- Version 1.3.3 (10 May 2007)
- In trackFeatures.c, changed 'one_plus_eps' to 1.001, and changed order of comparison to avoid
roundoff error that was causing program to crash on 64-bit architectures.
-- Thanks to
Christian Vogler
- Version 1.3.2 (28 March 2006)
- Now multiplying by 2 in _compute2by1ErrorVector, to make the code consistent with
the equations in the derivation.
-- Thanks to
Hiroshi Hattori (and someone else who also pointed this out a few years ago, whose name was lost)
- Changed \rm to rm in the Makefile
-- Thanks to Nicolas Saunier
- Now initializing sum1_squared and sum2_squared in _computeIntensityDifferenceLightingInsensitive and _computeGradientSumLightingInsensitive
- Version 1.3.1 (21 November 2005)
- fixed memory leak in the affine consistency check
(one line in _am_trackFeatureAffine and several in KLTTrackFeatures)
-- Thanks to
Miguel Arredondo
- added optional normalization for gain and bias of image intensities in the window,
making the tracker lighting insensitive
-- Thanks to Zhichao Chen
- Version 1.3 (17 August 2005)
- combined code for Unix/Linux, Visual C++ 6.0, and Visual Studio.Net 2003.
This involved a lot of floating point conversions and replacing expf with exp,
fsqrt with sqrt, etc.
- fixed memory leak in KLTFreeFeatureTable (line 493 of klt.c)
-- Thanks to
Stefan Wachter
- fixed initialization of affine parameters in KLTFreeFeatureTable (line 177
of klt.c)
-- Thanks to Sinisa Segvic
- Version 1.2.1 -- Visual Studio 2003 port (5 August 2005)
- ported to Visual Studio 2003
-- Thanks to Jérôme Martin
- Version 1.2.1 (30 June 2005)
- Big fixed in affine code, by Kevin Koeser (University of Kiel), via Thorsten
Thormaehlen
- Version 1.2 (16 June 2004)
- Affine warping code implemented
-- Thanks to Thorsten Thormaehlen
- Version 1.1.5 -- Visual C++ port (2 Mar 2004)
- Version 1.1.5 (7 Oct 1998)
- In trackFeatures.c, renamed _sumFloatWindow to _sumAbsFloatWindow
(I thought this had been done before in version 1.1.1).
Two bugs in the function were fixed:
- Now, the absolute value is taken of the individual pixels before
summing them.
- The 'for' loop over 'width' now works correctly.
Note: As a result of this bug fix, the default value of tc->max_residue
was changed to 10.
-- Thanks to Pedro Felzenszwalb
- Version 1.1.4 (18 Sep 1998)
- To make code work for Win32 systems, forced fopen() to
use binary rather than text file. (In Unix, default is
to open as binary, whereas in Win32, default is to open as
text).
-- Thanks to Johan, Fredje Helderweirt, and LiYunhao
- In convolve.c: Simplified formula for maximum of Gaussian
and Gaussian derivative.
- In selectFeatures.c, changed the errors to warnings, when
checking window size.
- Changed indentation for improved readability.
- Minor changes to eliminate compiler warnings:
- In selectGoodFeatures.c: Changed _quicksort to return void,
and wrapped _comparePoints() with #ifdef KLT_USE_QSORT.
- In trackFeatures.c: Changed _computeIntensityDifference
and _computeGradientSum to return void; removed
search_range_max, nlevels, and ixx, which were not being used.
- In pnmio.c: Type conversion made explicit in malloc().
- In selectFeatures.c: moved _quicksort() to top of file to
obviate need for prototype.
- In writeFeatures.c: _readHeader() now returns a structureType,
instead of an int (A structureType is an int, but some
compilers are really picky).
- Version 1.1.3 (3 Mar 1998)
- Fixed bug in
KLTTrackFeatures()
. In the
conditional just after the call to _trackFeature()
,
KLT_OOB
is now properly handled.
- Slightly improved bounds-checking by introducing an epsilon,
and by giving back an extra pixel along the border that had
been taken away unnecessarily.
- If tc->window_[width,height] is unacceptable,
a warning is now generated and the value is corrected.
Previously an error was generated.
- In Example 5, changed search range from 20 to 15. As a
result, if the window size is changed to 5 the number of
pyramid levels remains 2, which prevents the border from
increasing dramatically.
- In Makefile, change example dependencies from lib to libklt.a.
Unfortunately, changing the library source code (such as
trackFeatures.c
) and then calling make
example1 does not work properly, but at least
changing example1.c and then calling make
example1 does work. The latter case is probably more
important, so we will have to live with the current tradeoff.
- Version 1.1.2 (24 Feb 1998)
- Fixed major bug: Added an explicit check to ensure that feature
does not drift out of bounds during tracking. This removes the
problem of occasional crashes.
-- Thanks to Rainer Stiefelhagen
- Speeded up sorting by replacing qsort() with Manolis Lourakis'
_quicksort() function.
-- Thanks to Manolis Lourakis, Luis Rivera
- Added KLTSetVerbosity() to klt.c (It should have already been there)
- Changed ppmWriteFile() to ppmWriteFileRGB()
- Fixed minor bug: assert() statement in line 314 of convolve.c
-- Thanks to Rainer Stiefelhagen
- In Makefile, change example dependencies from libklt.a to lib
- Version 1.1.1 (18 Dec 1997)
- Fixed minor syntax bug: Changed 'if feof(fp)' to 'if (feof(fp))'
in writeFeatures.c
-- Thanks to Matt Last
- Fixed major bug: When tracking features, 'max_residue' was not
being computed correctly. Therefore, feature windows that changed
a lot in intensity were not being detected. Specifically, in
trackFeatures.c, I changed _sumFloatWindow to _sumAbsFloatWindow.
- Version 1.1
- (16 Oct 1997)
- Fixed bug in pgmReadFile(). It was not skipping over the
last return character.
- Example 1 was updated to include binary files.
- Changed KLTWriteFeature...() and KLTReadFeature...()
to allow binary files, as well as text files.
- (15 Oct 1997)
- Posted
- Fixed obscure bug in KLTChangeTCPyramid() and
improved readability of that function
- Fixed incorrect assert() statement in _interpolate() function
- Version 1.1 (beta)
- (21 Feb 1997)
- Renamed as Version 1.1 (beta)
- (15 Feb 1997)
- Posted as Version 1.2
(This was a mistake; it should have been named Version 1.1 (beta).)
- Fixed obscure bug that sometimes caused infinite loop
(bug was in _enforceMinimumDistance() function of
selectGoodFeatures.c)
- Amended KLTPrintTrackingContext() to print all the new
fields that were added in Version 1.1
- Version 1.1 (alpha)
- (21 Feb 1997)
Renamed as Version 1.1 (alpha)
- (10 Feb 1997)
- Posted as Version 1.1
(This was a mistake; it should have been named Version 1.1 (alpha).)
- Features are lost when residue exceeded
- KLTSelectGoodFeatures() only accepts features whose minimum
eigenvalue is at least
tc->min_eigenvalue
- User allowed to output internal images
- comments allowed in data files
- Default for
tc->smooth_sigma_fact
changed from 0.5 to 0.1
- Simplified _minEigenvalue() routine in selectGoodFeatures.c
- Version 1.0 (beta)
- (10 Feb 1997)
- Posted
- Print statements are prefaced by "(KLT) "
- Version 1.0 (alpha)
- (28 Jan 1997)
- Removed '#include "pyramid.h"' from "klt.h"
- Changed '_KLT_Pyramid' in "klt.h" to 'void *'
- Forced coercion of 'void *' to '_KLT_Pyramid' in other files
- (27 Jan 1997)
- Removed 'makedepend' from Makefile, along with dependencies
below '# DO NOT DELETE'
- (24 Jan 1997)
- Posted