SimpleITK: An Interactive, Python-Based Introduction to SimpleITK with the Insight Segmentation and Registration Toolkit (ITK)

Wednesday, 13 April, 8:30am-12:15pm


  • Hans Johnson (The University of Iowa, Iowa City, USA)


  • The primary objective of this tutorial is to familiarize students and researchers with SimpleITK’s interface in the Python programming language. We highlight the primary features of SimpleITK and demonstrate how to efficiently utilize existing python features to rapidly develop complete analysis strategies.
  • The secondary objective of this tutorial is to introduce attendees to the SimpleITK interface and the advanced ITKv4 image processing filters.
  • All tutorial materials, including data, code and slides will be made freely available online.

Topic and background

The Insight Segmentation and Registration Toolkit (ITK) is widely used in the medical image-computing domain. In many cases, the algorithms it includes have become the de-facto standard to which new algorithms are compared.  ITK implementations of algorithms are often used in a sub-optimal fashion, as researchers use parameter settings from existing examples without experimenting with their effect on results. Experimentation with specific component selections and parameter settings in ITK requires significant programming effort. SimpleITK is designed to facilitate easy evaluation of component choices and settings with minimal programming effort, and is readily used in an interactive manner within the IPython environment.

SimpleITK is a simplified interface to the underlying ITK algorithms featuring a procedural interface and a generic image class to represent numerous pixel types and image dimensionality. Given the popularity of the Python programming language, we have chosen to use SimpleITK’s Python binding for this tutorial. Combining the simplified interface provided by SimpleITK with an interpreted language such as Python will enable researchers to readily familiarize themselves with a wide range of ITK algorithms and to explore the effects of parameter settings on algorithm performance, with minimal programming effort. Following this tutorial, we expect participants to be able to use SimpleITK in order to complete common medical imaging analysis tasks, with minimal programming effort.


The goal of this half-day tutorial is to introduce Biomedical Imaging researchers to SimpleITK’s interface. The course will focus on SimpleITK’s registration framework, and demonstrate how to leverage existing python infrastructures (i.e., machine learning, data analysis, report generation) to utilize this powerful analysis environment.

SimpleITK is, as the name suggests, a simpler interface to vast algorithm repository of ITK. It provides a procedural interface and bindings to several interpreted languages, facilitating fast experimentation with ITK algorithms. In this tutorial we will use the Python programming language and the IPython Notebook interactive environment to explore the various features of the ITKv4 registration framework. Key features presented include: an introduction to the SimpleITK data and processing paradigms, introduction to the uniform treatment of linear, deformable and composite transformations for registration, and demonstration of machine learning for medical imaging by using both SimpleITK and scikit-learn. Using a hands on approach, participants will experiment with various tasks, learning how to use SimpleITK in order to gain insight into the effects of parameter settings on accuracy and running time of ITK based registration algorithms.

The proposed format is a half-day meeting comprised of hands on, interactive, sessions. Each session focuses on a specific subset of SimpleITK components and will be based on IPython Notebooks. This web based, interactive, environment allows us to incorporate code, text and results into a single document. Following the instructor’s lead, attendees will be able to load data, run commands, and experiment with the various parameter settings and their effect on the algorithm at hand. Two forms of experimentation will be used: (1) notebook widgets such as sliders and text boxes allowing the participants to directly manipulate parameters and visualize results without any programming. (2) interactively editing the code, re-running it and observing the results.


  1. Setup and introduction.
  2. SimpleITK basics: loading data, image access, image transformations, image resampling, basic filters.
  3. Registration: Rigid, Nonrigid registration, Bspline and displacement field transformations.
  4. Integration with other tools: A machine learning example (using scikit-learn & SimpleITK) to demonstrate a complete analysis solution.

Participant Preparation

  • Participants are expected to bring their laptops to the tutorial.
  • Participants are expected to have an installation of IPython and the SimpleITK package on their laptops. We will provide installation instructions on the tutorial’s web site prior to the meeting. At the venue we will provide a virtual machine on a USB, for participants that were unable to install the software on their machines.


Participants are expected to have familiarity with basic programming concepts. They do NOT need to be fluent in python. Similar tutorials have been attended by a diverse set of participants from medical, engineering and computer science backgrounds.

Other tutorials

T1: Designing Benchmarks and Challenges for Measuring Algorithm Performance in Biomedical Image Analysis
T3: Heart Mechanics by Magnetic Resonance Imaging: Techniques and Applications
T4: Deep Learning