Skip to main content

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

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

itk_elastix-0.25.2-cp311-abi3-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.11+Windows x86-64

itk_elastix-0.25.2-cp311-abi3-manylinux_2_28_x86_64.whl (21.4 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ x86-64

itk_elastix-0.25.2-cp311-abi3-manylinux_2_28_aarch64.whl (19.6 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

itk_elastix-0.25.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.2 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.17+ x86-64

itk_elastix-0.25.2-cp311-abi3-macosx_11_0_arm64.whl (11.8 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

itk_elastix-0.25.2-cp310-cp310-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.10Windows x86-64

itk_elastix-0.25.2-cp310-cp310-manylinux_2_28_x86_64.whl (21.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

itk_elastix-0.25.2-cp310-cp310-manylinux_2_28_aarch64.whl (19.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

itk_elastix-0.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

itk_elastix-0.25.2-cp310-cp310-macosx_11_0_arm64.whl (11.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file itk_elastix-0.25.2-cp311-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for itk_elastix-0.25.2-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6afdd7cbbd5357313852917f3f5daba68c2ba9ecda2d9a7d9619394fb7133849
MD5 b25773941130b300d3c7d66bd5d385e9
BLAKE2b-256 0551481691dd467ca53ee1da92e333a7350c8160b6ee47b025209ab80a01db0e

See more details on using hashes here.

File details

Details for the file itk_elastix-0.25.2-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for itk_elastix-0.25.2-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2ccb020e952db4a29c1a3c49a02b9ea489307390a7fe351dbd84b962d9d16c17
MD5 b41d80d306f973c032744b1b2e8a9446
BLAKE2b-256 3434cbaed9a1547acf758d62f739564f75b4f703124b875fd81be9f55e8da9a4

See more details on using hashes here.

File details

Details for the file itk_elastix-0.25.2-cp311-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for itk_elastix-0.25.2-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 546e0379341e41e77e22a4911a961c6be77a988e7b6a875737c17c64f63933b1
MD5 f7bd96efa9a92657ba583e539b88ec32
BLAKE2b-256 f6a035554edc2e136476a6b76331c0fc4956b1fd3686b6beacb14da5933d73d6

See more details on using hashes here.

File details

Details for the file itk_elastix-0.25.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_elastix-0.25.2-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 071d6c7235b7031534ff59020fb15e9f268b5be5bc9fc951ed66fc4941bb433a
MD5 9aa18a7fcc32776ae42d0529d2404dd2
BLAKE2b-256 6cde5fb3f327d1680e71d4c8d166235a38330d906ec9ed25db5115182d8edc8a

See more details on using hashes here.

File details

Details for the file itk_elastix-0.25.2-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for itk_elastix-0.25.2-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7fbd21c93348a76f7eb5661a4395afbcdd07fcd243d1418f219d8641b00c5da3
MD5 92332ee56f5229893a54c08314a9af96
BLAKE2b-256 486db3ce641e7c4becc18ca12397c8cf364fd1c2fdfcba8f7e63a670015f01c9

See more details on using hashes here.

File details

Details for the file itk_elastix-0.25.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for itk_elastix-0.25.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a8704abc1e7169ae83bce482584eb106f8151785f2d16d42f424a66573794d66
MD5 afc9847f68684560424e7c0b93fec565
BLAKE2b-256 8200b27328c8310293784c24c6a0f2d3ba46aadfcb32c2977f78c763fa36341c

See more details on using hashes here.

File details

Details for the file itk_elastix-0.25.2-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for itk_elastix-0.25.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b0aee1369415bb6e50ed2ecb5b389339055281c2c0a03405a7350fa7e5713b57
MD5 6855be9034ee0d8bb829468e08fd5ee4
BLAKE2b-256 082f9e45f30813f186d6363baf34784f0f8c0aea57ae3b1c7cc0c9349161b7c2

See more details on using hashes here.

File details

Details for the file itk_elastix-0.25.2-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for itk_elastix-0.25.2-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 30fd535683b2dc26aba92c279d36495ad1c84aae01a675349c62f997d8ec6ba6
MD5 ab2ae2e293eb453f8675dfd2130f8687
BLAKE2b-256 1d412a8828e386542fe9f0f0a7ad2777fa8d0d45054e5979df269dde3c3900f5

See more details on using hashes here.

File details

Details for the file itk_elastix-0.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for itk_elastix-0.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 833e8011be21a77cf7bf05385a2580ca82da7b43e1567b1b296c0cad4671efaf
MD5 6564c92d249cb646400d79ca9d8cd11f
BLAKE2b-256 e5837d3fe1e4b5a88dc04f895b9b8ab910f2085b8678d2d8ae581e6deaa10d6e

See more details on using hashes here.

File details

Details for the file itk_elastix-0.25.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for itk_elastix-0.25.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5b382c3e071bc3cc27365194bcf7cd8ddb0bed3eda93fec6209c2508188b656
MD5 33a07d1274ec0fab865778200abcc5d8
BLAKE2b-256 19f716ac0c9aabdd9471cccbf7479297ad634efd89d6c842ea11af429c703325

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page