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
In this tutorial, we will use a hands-on approach utilizing Jupyter notebooks to
explore and experiment with various SimpleITK features in the Python programming
language. Participants will follow along using their personal laptops, enabling
them to explore the effects of code changes and parameter settings not covered
by the instructor. We will start with a short introduction to the toolkit’s two
basic data elements, Images and Transformations. Combining the two classes we
show how to use SimpleITK as a tool for image preparation and data augmentation
for deep learning via spatial and intensity transformations. We will then
present various features available in the toolkit’s registration framework and
components for constructing a segmentation workflow. Finally, we will show how
to use the toolkit for qualitative, visual, and quantitative evaluation of
segmentation and registration results.
Beyond the notebooks used in this course you can find the main SimpleITK notebooks repository on GitHub.
- Hans J. Johnson, University of Iowa.
- Bradley C. Lowekamp, National Institutes of Health and Medical Science & Computing LLC.
- Ziv Yaniv, National Institutes of Health and Medical Science & Computing LLC.
If you encounter problems or have questions, please post using this repository's
reporting system (requires a GitHub user account).
In this course we will use the Anaconda Python distribution. Please follow the
instructions below to setup the environment we will use during the course. All
commands below are issued on the command line (Linux/Mac - terminal,
Windows - Anaconda Prompt).
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/ .
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.7
- 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
Update the base anaconda environment and install the git version control system into it.
conda update conda
conda update anaconda
conda install git
Clone this repository:
git clone https://github.com/SimpleITK/ISBI2020_TUTORIAL.git
Create the virtual environment containing all packages required for the course:
conda env create -f ISBI2020_TUTORIAL/environment.yml
Activate the virtual environment:
- On Windows: open the Anaconda Prompt (found under the Anaconda3 start menu)
conda activate sitkpyISBI20
- On Linux/Mac: on the command line
source path_to_anaconda3/bin/activate sitkpyISBI20
Go over the setup notebook (requires internet connectivity). This notebook checks the environment setup and downloads
all of the required data.
jupyter notebook setup.ipynb
Click the launch binder button to try things out without installing (some display functions will not work):
- [8:30AM - 9:30AM] History and overview [ppt].
Spatial transformations, images and resampling.
- [09:30AM- 10:00PM] Data augmentation for deep learning.
- [10:00AM - 10:30AM] Break.
- [10:30AM - 11:30AM] Registration and segmentation.
- [11:30AM - 12:00PM] Segmentation evaluation and results visualization.
For those interested in reading more about SimpleITK (Python and beyond):
If you find that SimpleITK has been useful in your research, you can cite it via citations.bib.
R. Beare, B. C. Lowekamp, Z. Yaniv, "Image Segmentation, Registration and Characterization in R with SimpleITK", J Stat Softw, 86(8), 2018.
Z. Yaniv, B. C. Lowekamp, H. J. Johnson, R. Beare, "SimpleITK Image-Analysis Notebooks: a Collaborative Environment for
Education and Reproducible Research", J Digit Imaging., 31(3): 290-303, 2018.
B. C. Lowekamp, D. T. Chen, L. Ibáñez, D. Blezek, "The Design of SimpleITK", Front. Neuroinform., 7:45., 2013.