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 |
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.
This revision was tested with the following requirements and dependencies (other versions may work):
- CPython 3.9.13, 3.10.11, 3.11.9, 3.12.3
- NumPy 1.26.4
- Scipy 1.12.0
- Matplotlib 3.8.4 (optional for plotting)
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.
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.
- 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
- 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.
- Image Registration Using Adaptive Polar Transform. R Matungka, YF Zheng, RL Ewing. IEEE Transactions on Image Processing, 18(10), 2009.
>>> 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)