• Stars
    star
    180
  • Rank 206,284 (Top 5 %)
  • Language
    TypeScript
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

ITKElastix

image PyPI Version binder voila License Versioned software citation

Overview

Provides an ITK Python 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.

Installation

Install cross-platform binary Python packages with pip:

pip install itk-elastix

Experimental GPU-accelerated packages can be installed on Linux with:

pip install itk-elastix-opencl

Usage

To register two images, 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.

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:

  • S. Klein, M. Staring, K. Murphy, M.A. Viergever, J.P.W. Pluim, "elastix: a toolbox for intensity based medical image registration," IEEE Transactions on Medical Imaging, vol. 29, no. 1, pp. 196 - 205, January 2010.

  • 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

More Repositories

1

ITK

Insight Toolkit (ITK) -- Official Repository. ITK builds on a proven, spatially-oriented architecture for processing, segmentation, and registration of scientific images in two, three, or more dimensions.
C++
1,244
star
2

SimpleITK-Notebooks

Jupyter notebooks for learning how to use SimpleITK
Jupyter Notebook
798
star
3

itkwidgets

An elegant Python interface for visualization on the web platform to interactively generate insights into multidimensional images, point sets, and geometry.
Python
570
star
4

itk-wasm

High performance spatial analysis in a web browser, Node.js, and across programming languages and hardware architectures
Python
179
star
5

ScientificImageAnalysisVisualizationAndArtificialIntelligenceCourse

Jupyter Notebook
64
star
6

ITKPythonPackage

A setup script to generate ITK Python Wheels
CMake
61
star
7

ITKSphinxExamples

Cookbook examples for the Insight Toolkit documented with Sphinx
Jupyter Notebook
52
star
8

ITKThickness3D

An ITK module to compute 3D thickness
C++
35
star
9

ITKTubeTK

TubeTK is an open-source toolkit for the segmentation, registration, and analysis of tubes and surfaces in images, developed by Kitware, Inc.
C++
34
star
10

ITKSoftwareGuide

Sources for the ITKSoftwareGuide.
TeX
31
star
11

ITKMinimalPathExtraction

Vessel and tube centerline extraction
C++
25
star
12

DCMTK-old

A staging location for patches to be pushed upstream to dcmtk.org.
C++
24
star
13

ITKApps

Example Applications based on the Insight Toolkit ITK
C++
22
star
14

SimpleITKTutorialMICCAI2015

SimpleITK tutorial at the 2015 MICCAI conference
Python
22
star
15

ITKTextureFeatures

Fast, Texture Feature Maps from N-Dimensional Images
C++
22
star
16

ITKWikiExamples

Scraped, buildable version of the wiki examples
20
star
17

ITK-OpenCV-Bridge-Tutorial

Hands-on tutorial on how to combine ITK with OpenCV
TeX
19
star
18

ITKColorNormalization

Structure preserving color normalization on H&E images using a reference image
C++
18
star
19

covalic

A platform for image algorithm validation in public challenges.
C++
16
star
20

ITKVtkGlue

This module contains classes that bridge ITK image processing and VTK visualization pipelines.
C++
15
star
21

GetYourBrainTogether

Get Your Brain Together Neuroimage Registration Workshops and Hackathons
Jupyter Notebook
14
star
22

ITKGrowCut

ITKGrowCut is a remote module for ITK. It segments a 3D image from user-provided foreground and background seeds.
C++
13
star
23

ITKIsotropicWavelets

External Module for ITK, implementing Isotropic Wavelets and Riesz Filter for multiscale phase analysis.
C++
13
star
24

create-itk-app

Generate a new application based on itk.js, vtk.js and react.js.
JavaScript
12
star
25

ITKIOOpenSlide

An ITK ImageIO module for the OpenSlide library.
C++
11
star
26

ITKAnisotropicDiffusionLBR

Smoothing while preserving edges and coherent structures in images with anisotropic diffusion using lattice basis reduction
C++
10
star
27

LesionSizingToolkit

A module for the Insight Toolkit (ITK) that provides a generic, modular, and extensible architecture for lesion sizing algorithms in medical images as well as a reference algorithm for lung solid lesion segmentation in CT images.
C++
10
star
28

ITKTotalVariation

External Module for Total Variation Algorithms, providing wrap for https://github.com/albarji/proxTV
C++
10
star
29

InsightJournal

Insight Journal
JavaScript
9
star
30

ITKv4-TheNextGeneration-Tutorial

What is new in ITKv4
C++
8
star
31

ITKIOOMEZarrNGFF

ITK IO for images stored in OME-Zarr format.
C++
7
star
32

napari-itk-io

File IO with itk for napari.
Python
7
star
33

ITKVkFFTBackend

VkFFT backends for ITK FFT classes.
Jupyter Notebook
7
star
34

ITKBoneMorphometry

ITK filters that quantify bone morphometry
C++
7
star
35

ITKMeshToPolyData

Convert an ITK Mesh to a simple data structure compatible with vtk.js PolyData
C++
6
star
36

ITKGitHubCDashStatus

Provides the GitHub pull request status link to the CDash dashboard for the pull request's builds.
JavaScript
6
star
37

InsightJournalTemplate

Template of Technical Report to be submitted to the Insight Journal
TeX
6
star
38

ITKNDReg

C++
5
star
39

ITKThinShellDemons

Thin Shell Demons Mesh Registration
C++
5
star
40

ITKArrayFire

ArrayFire-backed ITK pipelines
C++
5
star
41

itk-dreg

A framework for distributed large-scale image registration
Python
5
star
42

SimpleITKTutorialSPIE2016

A collection of Jupyter Notebooks to be used as instructional material for SPIE 2016 course.
Jupyter Notebook
5
star
43

ITKSplitComponents

This ITK module contains a filter that generates component images from an itk::Image of itk::Vector, itk::CovariantVector, or itk::SymmetricSecondRankTensor.
TeX
5
star
44

ITKFastBilateral

Fast implementation of BilateralFilter. From the [Insight Journal]( https://www.insight-journal.org/browse/publication/692)
C++
4
star
45

ITKTutorialExercises

Hands on Exercises used in ITK Tutorials
C++
4
star
46

itk-viewer-bootstrap-ui

A UI frontend based on React Bootstrap
JavaScript
4
star
47

ITKDevelopmentEnvironment

A repository of scripts to set up an ITK development environment.
SaltStack
4
star
48

xstate-lit

XState Web Component Reactive Selector Controller
TypeScript
4
star
49

ITKCLEsperanto

ITK filters accelerated with OpenCL via [clEsperanto](https://clesperanto.github.io/).
C++
4
star
50

RIREWebsite

Website sources for The Retrospective Image Registration Evaluation Project (RIRE)
HTML
4
star
51

ITKIOTransformDCMTK

An ITK module to read DICOM spatial transforms.
C++
3
star
52

ITKMGHImageIO

ITK IO for images stored in mgh, mgz and mgh.gz formats.
C++
3
star
53

itk-viewer

Multi-dimensional web-based image, mesh, and point set viewer
TypeScript
3
star
54

itk-napari-conversion

Convert between itk and napari data structures.
Python
3
star
55

itk_cucim

ITK Python filters accelerated with cuCIM
Python
3
star
56

ITKSubdivisionQuadEdgeMeshFilter

Classes for ITK triangle mesh subdivision
C++
3
star
57

ITKBarCamp

Training grounds for Next Generation of ITK Community Members
Python
3
star
58

ITKContinuousIntegration

This repository provides the CI deployment files.
Shell
3
star
59

ITKBioCell

This remote module contains classes related to segmentation of biological cells. It has classes to represent cells' shape, color, and growth state. It also has classes to represent a cell genome, whose expression is modeled by differential equations.
C++
3
star
60

ITKRingArtifact

ITK filters to reduce ring artifacts common in x-ray computed tomography.
C++
3
star
61

craco-itk

A plugin for craco to use itk.js with create-react-app.
JavaScript
3
star
62

SimpleITKWorkshopImageJ2015

SimpleITK workshop material for the 2015 ImageJ Conference. http://imagej.net/Conference_2015
Shell
3
star
63

itk-viewer-material-ui

A Material UI interface for itk-viewer
JavaScript
3
star
64

ITKFPFH

Fast Point Feature Histogram
C++
2
star
65

ITKPerformanceVisualization

Visualization application for the performance benchmarks
JavaScript
2
star
66

ITKNeuralNetworks

This remote module contains classes and support classes for the calculation of artificial neural networks. This can be used, for instance, for image classification.
C++
2
star
67

itk-viewer-color-maps

Color maps for itk-viewer
TypeScript
2
star
68

ITKIOOpenJPH

An ITK module to read and write High-throughput JPEG2000 (HTJ2K) images.
Python
2
star
69

itk-viewer-icons

Icons for `itk-viewer` user interfaces
JavaScript
2
star
70

ITKPerformanceBenchmarking

Real-world tests to benchmark ITK performance.
C++
2
star
71

ITKPyTorch

Implementations of ITK spatially-aware filters in PyTorch
C++
2
star
72

ITK-MICCAI-LevelSets

2
star
73

dam

Data Archive Manager
JavaScript
2
star
74

ITKIOFDF

Implement's Glenn Pierce's itk::FDFImageIO as an ITK Remote Module
C++
2
star
75

SimpleITKTutorialSPIE2017

Jupyter Notebook
2
star
76

ITKImageCompare

This tool is a simple command line application that reads two images and compares their content. It has a built-in degree of tolerance, so the images don't have to be identical pixel by pixel.
C++
2
star
77

ITKBSplineGradient

Approximate an image's gradient from a b-spline fit to its intensity
C++
2
star
78

ITKMeshNoise

Classes to perturb ITK mesh objects with Gaussian noise
C++
2
star
79

ITKOptimizationMonitor

Tools to monitor and visualize ITK registration and other optimization processes
C++
2
star
80

ITKRemoteModuleBuildTestPackageAction

A composite GitHub Action to build, test, and package, ITK remote modules
2
star
81

ITKTrimmedPointSetRegistration

C++
1
star
82

ITKPolarTransform

A module for ITK to transform from cartesian to polar coordinate systems and back.
C++
1
star
83

itk-viewer-transfer-function-editor

Interface to interactively edit opacity transfer functions, etc
TypeScript
1
star
84

ITKClangFormatLinterAction

GitHub Action to check for consistency with ITK's Coding Style
Shell
1
star
85

ITKIOMeshSWC

ITK module for reading meshes from SWC files, a human- and machine-readable format for representing neuron morphologies
C++
1
star
86

ITKTestingData

ITK Testing Data Mirror
C++
1
star
87

ITKBuildRobot

Configuration scripts for ITK's Jenkins build robots.
PowerShell
1
star
88

ITKApplyClangFormatAction

GitHub Action to apply clang-format on a PR when a label is applied.
JavaScript
1
star
89

ITKEntropyBasedIntensityCorrection

Homogenize intensity across an image with exposure bias when it contains few intensity states
C++
1
star
90

itk-wasm-testing-data

History of testing data for itk-wasm
1
star
91

ITKDoxygen

ITK Doxygen nightly built with GitHub Actions and published to GitHub Pages
Shell
1
star
92

ITKRobustPredicate

A wrapper around Jonathan Shewchuk's Robust Predicate code. http://www.cs.cmu.edu/~quake/robust.html
C
1
star
93

insightsoftwareconsortium.org

Sources for insightsoftwareconsortium.org website
TeX
1
star
94

.github

Default GitHub community health files
1
star
95

cmake-w3-externaldata-upload

CMake Web3 ExternalData Upload UI
JavaScript
1
star