Skip to content
drop2 - intensity-based image registration
C++ CMake Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
drop option for saving transformation field for linear registration Oct 5, 2019
itkio compatibility with boost 1.70 Oct 13, 2019
mia optional composition of affine transform and displacement field Oct 4, 2019
mrfopt initial commit Sep 28, 2019
.travis.yml add CI and build script Oct 2, 2019
CMakeLists.txt initial commit Sep 28, 2019
LICENSE license Sep 29, 2019
README.md Update README.md Oct 6, 2019
build.sh add CI and build script Oct 2, 2019

README.md

drop2

Build Status

drop2 is a cross-platform C++ intensity-based image registration tool. It works for 2D and 3D images and has both linear and non-linear registration methods implemented.

Linear (i.e., rigid and affine) registration is based on Downhill simplex optimization. Non-linear (i.e., deformable) registration is based on free form deformations with an efficient discrete MRF optimization scheme as introduced in:

@article{glocker2008dense,
  title={Dense image registration through MRFs and efficient linear programming},
  author={Glocker, Ben and Komodakis, Nikos and Tziritas, Georgios and Navab, Nassir and Paragios, Nikos},
  journal={Medical image analysis},
  volume={12},
  number={6},
  pages={731--741},
  year={2008},
  publisher={Elsevier}
}

@article{glocker2011deformable,
  title={Deformable medical image registration: setting the state of the art with discrete methods},
  author={Glocker, Ben and Sotiras, Aristeidis and Komodakis, Nikos and Paragios, Nikos},
  journal={Annual review of biomedical engineering},
  volume={13},
  pages={219--244},
  year={2011},
  publisher={Annual Reviews}
}

If you make use of drop2, it would be great if you cite one of these papers in any resulting publications.

Dependencies

drop2 depends on several third-party libraries:

Build instructions

Eigen is a header-only library and can be simply installed via:

#!bash

$ mkdir 3rdparty
$ cd 3rdparty
$ wget http://bitbucket.org/eigen/eigen/get/3.3.7.tar.gz
$ mkdir -p eigen && tar xvf 3.3.7.tar.gz -C eigen --strip-components=1

You can download and install ITK in the same 3rdparty folder via:

#!bash

$ wget https://sourceforge.net/projects/itk/files/itk/4.13/InsightToolkit-4.13.2.tar.gz
$ tar xvf InsightToolkit-4.13.2.tar.gz
$ cd InsightToolkit-4.13.2
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=../../itk ..
$ make -j4
$ make install

Alternatively, you can check out these ITK install instructions.

You can install Boost and TBB via apt-get:

#!bash

$ sudo apt-get install libboost-all-dev libtbb-dev

Note, you might have to specify a specific version via apt-get install <package>=<version>.

drop2 comes with a CMake configuration file. From the top folder where CMakeLists.txt is located (same as this README), do the following to build all internal libraries and executables:

#!bash

$ mkdir build
$ cd build
$ export THIRD_PARTY_DIR=<folder_containing_eigen_and_itk>
$ cmake ..
$ make -j4

The actual registration tool is called dropreg and will be located in build/drop/apps/dropreg.

Usage

Note, drop2 is implemented with the intention of making image registration easy-to-use. Some internal optimization parameters are hard-coded and cannot be changed via command line arguments. Run ./dropreg -h to see a list of arguments.

Detailed instructions and examples are coming soon...

Acknowledgements

The original idea for using discrete MRF optimization for image registration was developed back in 2006 by Ben Glocker and Nikos Paragios. The core algorithm has been patented (Pub. No. WO/2009/010860).

We are very grateful for the support and contribution by Jiří Borovec and Jan Kybic. Their efforts on the Automatic Non-rigid Histological Image Registration (ANHIR) challenge made us push for the release of this updated version of the original drop registration method which had been lying around in a private repository for too long.

Special thanks go to Hauke Heibel who has contributed significantly to the re-implementation of the C++ image processing backend.

You can’t perform that action at this time.