If you encounter problems or have tutorial specific questions, please post on the tutorial's GitHub issue reporting system (requires a GitHub user account). For general SimpleITK questions, please use the ITK discourse forum.


SimpleITK is a simplified programming interface to the algorithms and data structures of the Insight Toolkit (ITK) for segmentation, registration and advanced image analysis. It supports bindings for multiple programming languages including C++, Python, R, Java, C#, Lua, Ruby and TCL. Combining SimpleITK’s Python bindings with the Jupyter notebook web application creates an environment which facilitates collaborative development of biomedical image analysis workflows.

In this tutorial, we use a hands-on approach utilizing Python and Jupyter notebooks to explore and experiment with various SimpleITK features. You can browse the Jupyter notebooks on your own, watch the videos associated with these notebooks or work your way through the notebooks following along with the videos.

Additional details and notebooks can be found on the main SimpleITK notebooks repository.


In this tutorial we will use the Anaconda Python distribution. Please follow the instructions below to setup the environment. All commands below are issued on the command line (Linux/Mac - terminal, Windows - Anaconda Prompt).

  1. Download and install the Fiji image viewer. This is the default image viewer used by SimpleITK:
    • On Windows: Install into your user directory (e.g. C:\Users\[your_user_name]\).
    • On Linux: Install into ~/bin/ .
    • On Mac: Install into /Applications/ or ~/Applications/ .
  2. Download and install the most recent version of Anaconda for your operating system. We assume it is installed in a directory named anaconda3. Regardless of the installer, we will be working with Python 3.8
    • On Windows: open the Anaconda Prompt (found under the Anaconda3 start menu).
    • On Linux/Mac: on the command line source path_to_anaconda3/bin/activate base
  3. Update the base anaconda environment and install the git version control system into it.
    conda update conda
    conda update anaconda
    conda install git
  4. Clone this repository:
    git clone https://github.com/SimpleITK/TUTORIAL.git
  5. Create the virtual environment containing all packages required for the course:
    conda env create -f TUTORIAL/environment.yml
  6. Activate the virtual environment:
    • On Windows: open the Anaconda Prompt (found under the Anaconda3 start menu)
      conda activate sitkpy
    • On Linux/Mac: on the command line
      source path_to_anaconda3/bin/activate sitkpy


Click the launch binder button to try things out without installing , some display functions that use an external viewer will not work.

  • Start the tutorial by running the setup notebook. This notebook checks the environment setup and downloads all of the required data. At the bottom of each notebook you will find a button that will open the next notebook.
    jupyter notebook 00_setup.ipynb
  • Introduction [video]:
    • History [ppt].
    • Overview and fundamental concepts [ppt].
  • Foundations [video]:
  • Big Data [video]:
    • Efficient inspection of large image collections [notebook].
    • Data augmentation for deep learning [notebook].
  • Registration [video]:
    • The basic framework and initialization [notebook].
    • Nonrigid local domain transformations (FFD, Demons), and results evaluation [notebook].
    • Medical application example [notebook].
  • Segmentation [video]:
    • Microscopy application and shape analysis [notebook].
    • Results evaluation [notebook].
  • Results visualization [video, notebook].

Support the Toolkit

Star us on GitHub (requires GitHub account):

If you find that SimpleITK has been useful in your research, cite the appropriate paper (citations.bib):