Image registration with the QuadDIRECT optimization algorithm
Author HolyLab
5 Stars
Updated Last
1 Year Ago
Started In
January 2019


Build Status Build status codecov

RegisterQD performs image registration using the global optimization routine QuadDIRECT. Unlike many other registration packages, this is not "greedy" descent based on an initial guess---it attempts to find the globally-optimal alignment of your images.

This package exports the following registration functions:

  • qd_translate: register images by shifting one with respect to another (translations only)
  • qd_rigid: register images using rotations and translations
  • qd_affine: register images using arbitrary affine transformations

In general, using more degrees of freedom allows you to solve harder optimization problems, but also makes it harder to find the global optimum. Your best strategy is to permit no more degrees of freedom than needed to solve the problem.

See the help on these functions for details about how to call them.

Another important feature of this package is that it supports images that were sampled anisotropically. This is particularly common for three-dimensional biomedical imaging, where MRI and optical microscopy typically have one axis sampled at lower resolution. A rotation (from a rigid transformation) in physical space needs to be modified before applying it to an anisotropically-sampled image; see arrayscale and getSD for more information.

NOTE: see for information about a recent breaking change.