ECC image alignment algorithm (image registration)

version (66.3 KB) by Georgios Evangelidis
This is a Matlab implementation of the ECC image alignment (image registration) algorithm.


Updated 10 Dec 2017

View License

This is a Matlab implementation for the forwards additive version of the ECC image alignment algorithm based on the paper "G.D. Evangelidis, E.Z. Psarakis, Parametric Image Alignment using Enhanced Correlation Coefficient Maximization", IEEE Trans. on PAMI, vol. 30, no. 10, 2008. ECC algorithm is a direct (gradient-based) image registration algorithm. Due to gradient information, it achieves high accuracy in parameter estimation (i.e. subpixel accuracy). Its performance is invariant to global illumination changes in images since it considers the correlation coefficient (zero-mean normalized cross correlation) as an objective function.
The algorithm takes as input two unregistered images (input image, template image) and estimates the 2D geometric transformation, that, applied to the input image, provides a warped image registered to the template one. The current implementation includes a pyramid-based framework thus compensating large displacements. For even larger displacements or strong geometric distortions, ECC may need an appropriate initialization. This can be done either by feature matching or through an exhaustive search scheme for a coarse alignment.
The user can enable the pyramid-based implementation as well as choose the type of transformation (translation, euclidean, affine, homography), the number of iteration per level and the initialization transformation (optional). In order to see an example, run the demos. For more details take a look at the help of ecc.m and/or at the above mentioned paper.

Inverse-compositional version of ECC can be found at the Image Alignment Toolbox (

Cite As

Georgios Evangelidis (2022). ECC image alignment algorithm (image registration) (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2008a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!