The program also includes some testing programs. For example, "TestClean.m" registers noiseless data under 2D Euclidean transform. A typical output looks like this:

TestClean.m Output
The left side shows the input data, and the right side shows the registration result.

We can also test registration under noise corrupted data ("TestNoisy.m"). The following is a typical case of noise corrupted data,


TestNoisy.m Output

We also included registration code for non-rigid 2D transformation such as affine and projective. See "TestCleanAffine.m", "TestNoisyAffine.m" and "TestCleanProjective.m". The clean data tests are experimental verifications of our normalized KC algorithm (cost function (17) of our ECCV paper.) The ground truth transformation is a global minimum of the cost function even under non-rigid transformations. However, the parameter space has much larger dimensionality than the Euclidean case, 6 for affine and 8 for projective, versus 3 for Euclidean. As a result, it is more difficult to find these global minimum. Also in practice, non-uniformity due to non-rigid transformation should be accounted for through a resampling process to ensure unbiased registration.


TestCleanAffine.m output

TestNoisyAffine.m output

TestCleanProjective.m output