Welcome to imreg_dft’s documentation!

General overview

imreg_dft implements DFT[*] -based technique for translation, rotation and scale-invariant image registration.

In plain language, imreg_dft implements means of calculating translation, rotation and scale variation between two images. It doesn’t work with those images directly, but it works with their spectrum, using the log-polar transformation. The algorithm is described in [1] and possibly also in [2] and [3].

[*]DFT stands for Discrete Fourier Transform. Usually the acronym FFT (Fast Fourier Transform) is used in this context, but this is incorrect. DFT is the name of the operation, whereas FFT is just one of possible algorithms that can be used to calculate it.

The template (a), sample (b) and registered sample (c). This is the actual output of sample in the cli section

  • Brno University of Technology, Brno, Czech Republic
  • Laboratory for Fluorescence Dynamics, University of California, Irvine
  • 2014-2015, Matěj Týč
  • 2011-2014, Christoph Gohlke


See the requirements.txt file in the project’s root for the exact specification. Generally, you will need numpy and scipy for the core algorithm functionality.

Optionally, you may need:

  • pillow for loading data from image files,
  • matplotlib for displaying image output,
  • pyfftw for better performance.


Head for the corresponding section of the documentation. Note that you can generate the documentation yourself!

  1. Install the package by running python setup.py install in the project root.
  2. Install packages that are required for the documentation to compile (see the requirements_docs.txt file.
  3. Go to the doc directory and run make html there. The documentation should appear in the _build subfolder, so you may open _build/html/index.html with your web browser to see it.


The API and algorithms are quite good, but help is appreciated. imreg_dft uses semantic versioning, so backward compatibility of any kind will not break across versions with the same major version number.

imreg_dft is based on the code by Christoph Gohlke.


[1]An FFT-based technique for translation, rotation and scale-invariant image registration. BS Reddy, BN Chatterji. IEEE Transactions on Image Processing, 5, 1266-1271, 1996
[2]An IDL/ENVI implementation of the FFT-based algorithm for automatic image registration. H Xiea, N Hicksa, GR Kellera, H Huangb, V Kreinovich. Computers & Geosciences, 29, 1045-1055, 2003.
[3]Image Registration Using Adaptive Polar Transform. R Matungka, YF Zheng, RL Ewing. IEEE Transactions on Image Processing, 18(10), 2009.

Indices and tables