Skip to main content

ITKElastix

WebAssembly image PyPI Version binder voila License Versioned software citation CZI's Essential Open Source Software for Science

Overview

Provides an ITK Python, JavaScript, and WebAssembly interface to elastix, a toolbox for rigid and nonrigid registration of images.

elastix is open source software, based on the well-known Insight Toolkit (ITK). The software consists of a collection of algorithms that are commonly used to solve (medical) image registration problems. The modular design of elastix allows the user to quickly configure, test, and compare different registration methods for a specific application.

👨‍💻 Live JavaScript API Demo ✨

Installation

Install cross-platform native binary Python packages with pip:

pip install itk-elastix

Experimental WebAssembly Python packages can be installed across platforms with:

pip install itkwasm-elastix

Note The API for the WebAssembly and native binary packages are slightly different. For the WebAssembly interface, see the package's Sphinx documentation. For the interface to the native binaries, see the examples/ directory in this repository.

JavaScript / TypesScript packages cas be installed with

npm install @itk-wasm/elastix

Usage

To register two images with the native Python binaries, traditionally called the fixed image and the moving image:

import itk

fixed_image = itk.imread('path/to/fixed_image.mha')
moving_image = itk.imread('path/to/moving_image.mha')

registered_image, params = itk.elastix_registration_method(fixed_image, moving_image)

Interactive examples and tutorial material can be found in the examples directory. Run the examples in free cloud compute containers on MyBinder or clone the repository and run the notebooks locally in Jupyter Notebook or Jupyter Lab. Try out the experimental GPU packages on Paperspace Gradient.

ITKElastix can be used with both the procedural and the object oriented method, as shown in the example notebooks. The procedural method is shorter, less explicit and currently slightly less functional than the object oriented method, however the execution time and output do not differ apart from possible differences due to the stochastic nature of the Elastix algorithm.

To find parameters that work well with specific datasets, see the elastix Model Zoo.

For a graphical user interface in a desktop application, see the napari plugin.

Additional documentation is available for the WebAssembly JavaScript bindings and WebAssembly Python bindings.

Acknowledgements

ITKElastix was developed in part with support from:

The lead developers of elastix are Stefan Klein and Marius Staring.

This software was initially developed at the Image Sciences Institute, under supervision of Josien P.W. Pluim. Today, many have contributed to elastix.

If you use this software anywhere we would appreciate if you cite the following articles:

  • K. Ntatsis, N. Dekker, V. Valk, T. Birdsong, D. Zukić, S. Klein, M Staring, M McCormick, "itk-elastix: Medical image registration in Python", Proceedings of the 22nd Python in Science Conference, pp. 101 - 105, 2023, https://doi.org/10.25080/gerudo-f2bc6f59-00d.

  • D.P. Shamonin, E.E. Bron, B.P.F. Lelieveldt, M. Smits, S. Klein and M. Staring, "Fast Parallel Image Registration on CPU and GPU for Diagnostic Classification of Alzheimer's Disease", Frontiers in Neuroinformatics, vol. 7, no. 50, pp. 1-15, January 2014.

This ITK module is based on SimpleElastix, created by Kasper Marstal. For more information, see:

  • Kasper Marstal, Floris Berendsen, Marius Staring and Stefan Klein, "SimpleElastix: A user-friendly, multi-lingual library for medical image registration", International Workshop on Biomedical Image Registration (WBIR), Las Vegas, Nevada, USA, 2016

Metadata

Release files for itk-elastix 0.25.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for itk-elastix 0.25.4
File
itk_elastix-0.25.4-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details
itk_elastix-0.25.4-cp311-abi3-manylinux_2_28_x86_64.whl CPython 3.11 abi3 Linux glibc 2.28+ x86-64 Details
itk_elastix-0.25.4-cp311-abi3-manylinux_2_28_aarch64.whl CPython 3.11 abi3 Linux glibc 2.28+ ARM64 Details
itk_elastix-0.25.4-cp311-abi3-macosx_15_0_arm64.whl CPython 3.11 abi3 macOS 15.0+ ARM64 Details
itk_elastix-0.25.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
itk_elastix-0.25.4-cp310-cp310-manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64 Details
itk_elastix-0.25.4-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
itk_elastix-0.25.4-cp310-cp310-macosx_15_0_arm64.whl CPython 3.10 CPython 3.10 macOS 15.0+ ARM64 Details

Total release size: 122.5 MB

Release files / itk_elastix-0.25.4-cp311-abi3-win_amd64.whl

Download URL itk_elastix-0.25.4-cp311-abi3-win_amd64.whl
Size 8.0 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
3d671f6fbaa8d3aa84d12c083f67033215b1df1acfe6f56bee43e7abe281a95b
BLAKE2b-256 checksum
How to use checksums
de93881347268beea2cba49df981483c51d2279d03a6b1b6eacd5622394f8a8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / itk_elastix-0.25.4-cp311-abi3-manylinux_2_28_x86_64.whl

Download URL itk_elastix-0.25.4-cp311-abi3-manylinux_2_28_x86_64.whl
Size 21.6 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
9584f9b87e536e0ba77d6a4a8ce6807b61537577957df5615b53bb9735f0acb6
BLAKE2b-256 checksum
How to use checksums
a846ae263616c078cbba28f17326f05dc01629a1c3d32ecc440f89a450e9d63f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / itk_elastix-0.25.4-cp311-abi3-manylinux_2_28_aarch64.whl

Download URL itk_elastix-0.25.4-cp311-abi3-manylinux_2_28_aarch64.whl
Size 19.8 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
5e60251781f53cc447c0f606a09fa3363668f6d96074ece2971281e88d66c036
BLAKE2b-256 checksum
How to use checksums
72b55b5c82169ee4c841dec22a159da53f9433b73276c9d25b0eed2d21e877bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / itk_elastix-0.25.4-cp311-abi3-macosx_15_0_arm64.whl

Download URL itk_elastix-0.25.4-cp311-abi3-macosx_15_0_arm64.whl
Size 11.9 MB
Tags CPython 3.11 abi3 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
dbd05b6afeee6b25b3988bffcf92330d679a0e32195df8c430f87e231ea6ce3b
BLAKE2b-256 checksum
How to use checksums
297bae3d0d2bc7b3c364cc8c91be2a36dda684faba77a36ceb9bdeb5bd9e3653
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / itk_elastix-0.25.4-cp310-cp310-win_amd64.whl

Download URL itk_elastix-0.25.4-cp310-cp310-win_amd64.whl
Size 8.0 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
65a27d73d6d74bdc6a51726e9d955b61bcc80d1fc90ec0a2d50a85aa827723b8
BLAKE2b-256 checksum
How to use checksums
fc3d94da8fd5c072e965fbe00e63ff1227db48ede84cebd92bfd142c88e9b049
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / itk_elastix-0.25.4-cp310-cp310-manylinux_2_28_x86_64.whl

Download URL itk_elastix-0.25.4-cp310-cp310-manylinux_2_28_x86_64.whl
Size 21.6 MB
Tags CPython 3.10 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
aab5a45ed54d6042aa6d024b7d323051031af673c73b95f15ece9a06509c7ab5
BLAKE2b-256 checksum
How to use checksums
d39185c40545a8b2a31d8580301625c651822ed8a1cddc5f0d0d95648ba936b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / itk_elastix-0.25.4-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL itk_elastix-0.25.4-cp310-cp310-manylinux_2_28_aarch64.whl
Size 19.8 MB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
46c4352aa2931bf8aa6b0bedd5545e2552248ffb7cafdc4e643b4d18432b6b6a
BLAKE2b-256 checksum
How to use checksums
8c1eb649be2e9ff55ea2f6e22ef2a4147e6a8b3899d52b5501ae0db464d4d24b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / itk_elastix-0.25.4-cp310-cp310-macosx_15_0_arm64.whl

Download URL itk_elastix-0.25.4-cp310-cp310-macosx_15_0_arm64.whl
Size 11.9 MB
Tags CPython 3.10 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
4cb5caa98600ff5855d5e3856d20614cf470d05925450bdd3cc52cbbaba0acf4
BLAKE2b-256 checksum
How to use checksums
0c9f3d10108abf4cba3b5a8230daa7d298b96e9594699bdb9dfefe1d488966c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page