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 Stefajkn 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.24.0-cp311-abi3-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.11+Windows x86-64

itk_elastix-0.24.0-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.24.0-cp311-abi3-manylinux_2_28_aarch64.whl (19.6 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

itk_elastix-0.24.0-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.24.0-cp311-abi3-macosx_11_0_arm64.whl (11.8 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

itk_elastix-0.24.0-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.24.0-cp310-cp310-manylinux_2_28_aarch64.whl (19.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

itk_elastix-0.24.0-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.24.0-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.24.0-cp311-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for itk_elastix-0.24.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d150adce7bcc444e93f573db648352325915db61b7adf28b44a50a34f36f4481
MD5 9e76481aa85e58475b521dd457266f13
BLAKE2b-256 6d1d8e72f95bc54ee91c5345334df5e369e7ddae795de3a6c0289b9c8345dd7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for itk_elastix-0.24.0-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cf7d6393327ab59e4eb8c7c06b53accc84e96ad781c6255776f2b7f8b7e50f82
MD5 0dd301790f882128296c07736d042726
BLAKE2b-256 f61b3b9ac7c9f37dc4b6f096ac7af4e8bf6b07ee1b8f9a74c01408b7b6d3c779

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for itk_elastix-0.24.0-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 91309edfcc24c1424353f8bbba6e2ca75ae1f96ac925bf0eb75f4c5d166f0bc4
MD5 9b05c66c7a3c5c5990fa6dfc05fee493
BLAKE2b-256 6dcc4cafc08e9d90e2dbe0dcdfec00f1d85cbf999aca3a9fa945583bdbc2bc1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for itk_elastix-0.24.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 630534502a738d2021e5690d5403ab6ed086216bee930e208b662f31c6582b1d
MD5 c6c31d9848e90c76ccb0a28798b02a68
BLAKE2b-256 d991c3db1275d92af25e9fb37d73a49fd02602759b2e3a696e372dbe1651daba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for itk_elastix-0.24.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d86531c78ff279fb0afef8f791c1d297ac57026fb6b9fba115ad6e1ac082fba2
MD5 738472362979ec981c90ee208d25908c
BLAKE2b-256 811be22f702b161bb06f02c79c7ab98373bfce9c90bb36deb1e6f0d7f3e36934

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for itk_elastix-0.24.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 36d6c56a5c66a932a388459b5470bfa7c1cef426e68bef642a15bb3f0d199e74
MD5 6686754efa01c8fcf82729ba9a481f85
BLAKE2b-256 1d5d63c241a48bdabbad86d368ea769b8bed190c5f83ac26ae2a5612c4ea2e1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for itk_elastix-0.24.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0935868726e177e40faf3bb207bfa32df57d60311fea645f2e0ebaf77539e01f
MD5 b6ca2629386dcb36283d23f64f82f11f
BLAKE2b-256 e57b6b17f6e12961231c95974353b7bf8db93fb834d8aabc1410b1237b580ecf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for itk_elastix-0.24.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e8abe45d90311579713a3f4e66d7376b33072f47031b3bfb97791daf9f5d689b
MD5 7bb72fec3dd0a1801a1a884225b4be27
BLAKE2b-256 8be4c724315df8b5215946b13e45eb68e48cdcfe3455ef21cbec31114d379fb3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for itk_elastix-0.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b3da1711c47e67c8dfcc05b1e29296b626d68a5473a8ba9400cedb6c4914cd2c
MD5 7ff1518c626e98af99d25e35fe1f929f
BLAKE2b-256 ba650bf316713672fd0b3d64ead4d05eeeed32a6edce93ac8545c19677a1d52b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for itk_elastix-0.24.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f62b442172a937e966ee6f7f92a280544bd1707241dd83838ec4ea94debfa30c
MD5 98a83648ec0b2379397162356bd795aa
BLAKE2b-256 8aaa261e723640229984db527c7046c5111a7903f3f065ab1304e1217fc7ad57

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