Skip to content

cgohlke/imreg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FFT based image registration

Imreg is a Python library that implements an FFT-based technique for translation, rotation and scale-invariant image registration [1].

Author:Christoph Gohlke
License:BSD 3-Clause
Version:2024.5.24

Quickstart

Install the imreg package and all dependencies from the Python Package Index:

python -m pip install -U imreg

See Examples for using the programming interface.

Source code and support are available on GitHub.

Requirements

This revision was tested with the following requirements and dependencies (other versions may work):

Revisions

2024.5.24

  • Support NumPy 2.
  • Fix docstring examples not correctly rendered on GitHub.

2024.1.2

  • Add type hints.
  • Drop support for Python 3.8 and numpy < 1.23 (NEP29).

2022.9.27

  • Fix scipy.ndimage DeprecationWarning.

Notes

Imreg is no longer being actively developed.

This implementation is mainly for educational purposes.

An improved version is being developed at https://github.com/matejak/imreg_dft.

References

  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.

Examples

>>> im0 = imread('t400')
>>> im1 = imread('Tr19s1.3')
>>> im2, scale, angle, (t0, t1) = similarity(im0, im1)
>>> imshow(im0, im1, im2)
>>> im0 = imread('t350380ori')
>>> im1 = imread('t350380shf')
>>> t0, t1 = translation(im0, im1)
>>> t0, t1
(20, 50)