View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
ECC image alignment algorithm (image registration)

5.0 | 4 ratings Rate this file 34 Downloads (last 30 days) File Size: 66.3 KB File ID: #27253 Version: 1.14
image thumbnail

ECC image alignment algorithm (image registration)



15 Apr 2010 (Updated )

This is a Matlab implementation of the ECC image alignment (image registration) algorithm.

| Watch this File

File Information

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 (


This file inspired Active Appearance Models (Aa Ms).

Required Products Image Processing Toolbox
Signal Processing Toolbox
MATLAB release MATLAB 7.6 (R2008a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (5)
01 Jun 2016 Georgios Evangelidis

for running IC-ECC, get the latest version from

Comment only
01 Jun 2016 tingting

o, I'm sorry, there is a problem,how could i run the ic-ecc algorithm?and when solve the parameter delta_p only with the formula 19, and not with 20 in the paper,if you forgot udgment?

01 Jun 2016 tingting

thanks vrey much.I downloaded from this page ,but is this the latest version or not ?Showing ver1.4, 12/2/2013

26 Apr 2016 brown alexander

thanks very much for sharing this. i have a question. how could i run the ic-ecc algorithm?

27 Sep 2013 ted p teng

ted p teng (view profile)

Thanks for sharing this! The demo is very helpful and well document!!

15 Apr 2010 1.1

Revised description

06 May 2011 1.5

Some minor bugs have been resolved. Note that in this updated version,
warp initialization is the original affine or homography matrix and
diagonal elements are not the distance from unit. This might cause a
kind of confusion to users.

22 May 2011 1.6

bugs fixed

02 Dec 2011 1.7

1) The main function also accepts color (RGB) images. 2) minor bugs are fixed

09 Jan 2012 1.8

1) The algorithm deals with translation transform as well

2) Some compatibility problems with recent versions of Matlab have been resolved

11 Feb 2012 1.9

Bugs in demo file have been fixed.

14 May 2012 1.11

ECC deals with Euclidean transformation (rotation+translation). The user can enable any of the following transformations: translation, euclidean, affine, homography

04 Mar 2013 1.12

1) The code is updated and deals better with partially overlapped images.
2) A new demo demonstrates the alignment with partial overlap
3) Bugs for euclidean alignment have been fixed

06 Jan 2014 1.13

a bug in pamam_update function is fixed

02 Jun 2014 1.14

Inverse-compositional ECC algorithm is available

Contact us