Email questions
or comments

Registration using Embedded Maps


REM registers N-D image pairs that may contain topological differences. It produces an output reconstructed image and both a geometric and intensity transformation as a N-D vector field.

Registration is a fundamental processing component of most biomedical image analysis methods. Registration when one image contains a region not in the other violates topological preservation, a constraint used in many modern registration methods. REM represents the source and target images as embedded maps that combine intensity and the imaging space into one geometric object, a manifold. Registration is the performed on the manifolds so that changes in image topology can be recovered as intensity transformations. The product is a combined geometric and intensity transformation matching the source and target images.

The REM algorithm is generic and works on N dimensional scalar images. Command line programs are provided to operate on 2D and 3D images. The programs take as input the source and target images and produce the spatial-intensity transformation and optionally the source image after transformation. A typical usage scenario is registration of multiple images to a common target to test for group differences after removing affine differences.


There are two ways to install REM, as precompiled binaries and from source.

To install one of the precompiled binaries, download the appropriate file below for your system. Currently binaries for Linux (x86-64), Microsoft Windows, and Mac OS X (Universal) are provided. Unarchive in a directory, $INSTALLDIR. The two command line programs can be run from your shell as $INSTALLDIR/bin/rem2d and $INSTALLDIR/bin/rem3d

If you are using the linux version with shared libraris (for the Slicer module) you will also need to add $INSTALLDIR/lib to your LD_LIBRARY_PATH.

Prebuilt binaries:

Version 1.2.0

Version 1.0.1 (ChangeLog)

Version 1.0.0


To install from source requires a few prerequisites. A working C++ development environment is needed. The software also depends on the Insight Segmentation and Registration Toolkit and CMake. A script is provided to download and build the required dependencies. On Microsoft Windows the Cygwin shell is necessary to use the automated build scripts.

Download the stable source:


You can access and track the latest code using git:

git clone

To build the source run the script REM/Scripts/ from a shell. If you want to reuse an existing ITK installation, define the environment variable ITK_DIR and invoke cmake from a build directory pointing it to the REM source.

Slicer3 Module: The 3D version of REM can also be used as a Slicer3 Module. To build the module you need a development version of Slicer3 as described here. Download a source release or subversion checkout of the REM the code. Set the environment variable Slicer3_DIR before invoking the build script (or invoking cmake yourself). The module is placed in the lib/Slicer3/Plugins subdirectory of the REM build tree. Add this directory to your module list in Slicer.

Using REM

To get help on using the command line programs you can issue the -h flag on the command line.
Usage: rem2d [ string] [ string] [ string] [-i integer] [-e float] [-o string] 

         string  source image file name  ['(null)']
         string  target image file name  ['(null)']
         string  output deformation field  ['(null)']

  Switch Type    Help [default value] 

      -i integer maximum number of iterations  [100]
      -e float   embedding scale parameter  [0.1]
      -o string  output image file name  ['(null)']
      -h bool    Print this message

Memory requirements are 512 MB or greater for typical 2D images, 1GB or greater for typical 3D MR images. Input and output images can be in any format ITK supports. It is recommended using NIFTI formats for images and meta header (.mha) format for the transformations.

REM Pipeline Module: To make it easier to use REM in a LONI pipeline environement a pipeline module definition file for rem3d is provided in the binary and source distributions under the Resources directory, or can be downloaded here.

Uninstalling REM

To uninstall REM simply delete the build directory or the executables.