This is an archive of the old MediaWiki-based ImageJ wiki. The current website can be found at


Getting Started
User Guides
Tips and Tricks
All Techniques
User input
Basics of script writing
How to use the Javadoc
Batch processing
Script Editor
Auto Imports
Running headlessly
Multithreading in Clojure
Multithreading in JavaScript
Chess in Jython
ImageJ Macro
Lisp (Clojure)
Python (Jython)
R (Renjin)
Ruby (JRuby)

What is Registration?

Image registration is the process of transforming different sets of image data into one coordinate system. Image data may be multiple photographs, data from different sensors, times, depths, or viewpoints. It is used in computer vision, medical imaging, biological imaging and brain mapping, military automatic target recognition, and compiling and analyzing images and data from satellites. Registration is necessary in order to be able to compare or integrate the data obtained from these different measurements.

Essentially, image registration is used to align two or more images of the same scene. The transformation function, the method for modifying the spatial relationship between pixels, needs to be estimated/modeled in order to register the two images. The input image is the image that will be transformed, and the reference image is the one against which the input is registered. Geometric distortions causing differences in angle, orientation, shifting, and distance need to be taken into account. One of the most common methods to do image registration uses points that correspond to locations known in both the input and reference images. Tools exist in ImageJ that can automatically detect such correspondence points to then estimate the transformation function.

Recommended ImageJ Plugins for Registration

Here we summarize some of the Registration plugins in ImageJ.

Plugin Name Short Description Highlights Plugin Snapshot
Feature Extraction A tool for identifying a set of corresponding points of interest in two images Tem-42-33-f.png MOPS feature correspondences (example 1)
Linear Stack Alignment with SIFT A tool for aligning image stacks
  • A lightweight SIFT-implementation for Java after the paper of David Lowe[1].
BUnwarpJ A tool for elastic and consistent image registration
  • Performs 2D image registration based on elastic deformations represented by B-splines
  • Invertibility of the deformations is enforced through a consistency restriction
  • Get started with the detailed BUnwarpJ user manual
BUnwarpJ scheme.png
TrakEM2 A tool for morphological data mining, three-dimensional modeling and image stitching, registration, editing and annotation Trakem2-snap.jpg
Register Virtual Stack Slices A tool that takes a sequence of image slices stored in a folder and delivers a list of registered image slices
  • The plugin can perform 6 types of image registration techniques: Translation, Rigid (translation + rotation), Similarity (translation + rotation + isotropic scaling), Affine, Elastic (via BUnwarpJ with cubic B-splines), and Moving least squares
  • All models are aided by automatically extracted SIFT features
Rvs scheme.png
Fijiyama A registration tool for 3D multimodal time-lapse imaging
  • User-friendly, generic and versatile
  • Automatic 3D registration (two algorithms available)
  • Manual registration (using the 3D_Viewer)
  • Movie tutorials and example datasets
  • Settings automatically adjust based on your data
  • Transformations: linear or non-linear
  • Tested on specimens: human, vine trunk,
  • Tested on modalities: MRI, X-ray CT, Photograph
  • Limitations: should be avoided for big datasets (more than 15 time points or 1GB+).
Reg present 1.png

Other pages and tools for Registration in ImageJ

See Category:Registration for other ImageJ pages and tools about image registration.
  1. Lowe D (2004), "Distinctive Image Features from Scale-Invariant Keypoints", International Journal of Computer Vision 60 (2): 91-110