imreg_fmt is an implementation of the Fourier-Mellin transform-based image registration method originally described by B. S. Reddy and B. N. Chatterji in "An FFT-based Technique for Translation, Rotation, and Scale-Invariant Image Registration".

Given a pair of images, the algorithm computes the translation (x, y), scale and rotation required to register/align one image to the other.

In the example below, the first two are images of the same scene, with the camera being rotated slightly in the second image. The third overlay image shows the result of aligning the first image with the second image using this algorithm.

image 1 image 2 image 1 aligned to image 2

This project is a partial port of the implementation by Christoph Gohlke and Matěj Týč (see here) and is written in C++ and is suited for registering a sequence of images (such as from a video).

It does not support tiling as in imreg_dft and also assumes that an image is never rotated by more than 180 degrees.

A brief description of the algorithm can be found here: Overall pipeline.