SimpleITK is a simplified programming interface to the algorithms and data structures of the Insight Segmentation and Registration Toolkit (ITK). It supports bindings for multiple programming languages including C++, Python, R, Java, C#, Lua, Ruby and TCL. Combining SimpleITK’s Python binding with the Jupyter notebook web application creates an environment which facilitates collaborative development of biomedical image analysis workflows.
In this course, we will use a hands-on approach utilizing Python based SimpleITK Jupyter notebooks to explore and experiment with various toolkit features. Participants will follow along using their personal laptops, enabling them to explore the effects of changes and settings not covered by the instructor. We start by introducing the toolkit’s two basic data elements, Images and Transformations. We then combine the two, illustrating how to perform image resampling. Having mastered the concept of resampling, we show how to use SimpleITK as a tool for image preparation and data augmentation for deep learning via spatial and intensity transformations. We then turn our focus to the toolkit’s registration framework, exploring various components including: optimizer selection, the use of linear and deformable transformations, the embedded multi-resolution framework, self-calibrating optimizers and the use of callbacks for registration progress monitoring. Finally, we illustrate the use of a variety of SimpleITK filters to implement an image analysis workflow that includes segmentation and shape analysis.
- describe the components that comprise the SimpleITK registration framework.
- use the SimpleITK registration framework to register their own data by selecting the appropriate components and settings.
- list all of the SimpleITK transformation types and image intensity manipulation filters.
- use SimpleITK to prepare images as input for deep learning networks, including generation of synthetic images for data augmentation.