Image registration

Image registration is the process of transforming different sets of data into one coordinate system. Registration is necessary in order to be able to compare or integrate the data obtained from different sensors/imaging modalities, at different times, from different view points, etc. . Registration can be based on correspondence established between the landmarks or feature points. Alternatively, some similarity/distance metric is established between the image intensity maps to navigate the registration process.

Image alignment

Image registration in Matlab with Image Processing Toolbox


Align two images using intensity correlation, feature matching, or control point mapping

Together, Image Processing Toolbox™ and Computer Vision Toolbox™ offer four image registration solutions: interactive registration with a Registration Estimator app, intensity-based automatic image registration, control point registration, and automated feature matching. 

has topic
need a thumbnail

MSRC Registration Toolbox


This python toolbox performs registration between 2-D microscopy images from the same tissue section or serial sections in several ways to achieve imaging mass spectrometry (IMS) experimental goals.

This code supports the following works and enables others to perform the workflows outlined in the following works, please cite them if you use this toolbox:

  • Advanced Registration and Analysis of MALDI Imaging Mass Spectrometry Measurements through Autofluorescence Microscopy10.1021/acs.analchem.8b02884

  • Next Generation Histology-directed Imaging Mass Spectrometry Driven by Autofluorescence Microscopy10.1021/acs.analchem.8b02885

need a thumbnail



It is an interactive front-end visualization for registration software based on Elasix (VTK/ITK)

has topic
need a thumbnail



Non linear registration intensity based for MRI brain exams. To be applied after FLIRT

a brain mri

FMRIB's Linear Image Registration Tool FLIRT


FLIRT (FMRIB's Linear Image Registration Tool) is a fully automated robust and accurate tool for linear (affine) intra- and inter-modal brain image registration.

FLIRT comes with a main GUI as well as three supporting guis:

  • ApplyXFM - for applying saved transformations and changing FOVs
  • InvertXFM - for inverting saved transformations
  • ConcatXFM - for concatenating saved transformations



Python/C++ port of the ImageJ extension TurboReg/StackReg written by Philippe Thevenaz/EPFL.

A python extension for the automatic alignment of a source image or a stack (movie) to a target image/reference frame.

need a thumbnail

Align slices in stack


Align_slices in stack utilized the template matching function cvMatch_Template to do slice registration(alignment) based on a selected landmark.
This function will try to find the landmark or the most similar image pattern in every slice and translate each slice so that the landmark pattern will be the same position throughout the whole stack. It could be used to fix the drift of a time-lapse image stacks.

Source code: link

Input data: image stack
output data: image stack

has function

Template Matching and Slice Alignment--- ImageJ Plugins


This ImageJ plugin contains two functions. The first one is the cvMatch_Template. It implements the template matching function from the OpenCV library. The second function Align_slices in stack utilized the previous matching function to do slice registration(alignment) based on a selected landmark. 

For more details, refer to the page of each component. 


Align Slices in Stack

has function



Elastix is a toolbox for rigid and nonrigid registration of (medical) images.

Elastix is based on the ITK library, and provides additional algorithms for image registration. 

The software can be run as a single-line command, making it easy to include in larger scripts or workflows. The user needs to edit a configuration file that contains all relevant parameters for registration: transformation model, metric used to comapre images, optimization algorithm, mutliscale pyramidal representation of images...

Nowadays elastix is accompanied by SimpleElastix, making it available in other languages like C++, Python, Java, R, Ruby, C# and Lua.

has topic
elastix logo