The Medical Image Registration ToolKit (MIRTK) is a research-focused image processing toolkit. It provides a collection of libraries and command-line tools to assist in processing and analyzing imaging data. The main application of the MIRTK is in adult and neonatal brain MR image registration, including rigid, affine, and non-rigid transformations, as well as the reconstruction of cortical surface meshes. The modular project organization of the MIRTK enables the installation of selected modules.

The MIRTK is the result of my extensive refactoring and continued development of the IRTK software written by Daniel Rueckert and Julia Schnabel during my PhD studies at Imperial College London. Based on the existing code, I developed a new modular registration framework with improved results and runtime performance. The MIRTK furthermore includes tools for the processing of cortical surface meshes that I have developed for the dHCP project. The MIRTK has become the official successor of the IRTK and users are invited to test MIRTK out and adapt their workflow to use the new tools and libraries.

In the event you found the MIRTK useful, please consider giving appropriate credit with a citation of the research article(s) describing the implemented algorithm(s). See the corresponding list of publications for suitable references.


The CMake Build system And Software Implementation Standard (BASIS) makes it easy to create sharable software and libraries that work together. This is accomplished by combining and documenting some of the best practices, utilities, and open source projects available. More importantly, BASIS supplies a fully integrated suite of functionality to make the whole process seamless!


This utility library was originally developed at Google and was released as Open Source in 2008. I have taken over the maintenance of this open source project from Craig Silverstein in 2012. The gflags package contains a C++ library that implements a “distributed” command-line flags processing. It includes built-in support for standard types such as strings and the ability to define flags in the source file in which they are used rather than the module defining the main function that calls the parsing library to process the command arguments.