The Insight Segmentation and Registration Toolkit (ITK) is a long-established, software package used for image
analysis, visualization, and image-guided surgery applications. This package is a collection of C++ libraries, that
can pose usability problems for users without C++ programming experience. To bridge the gap between the
programming complexities and the required learning curve of ITK, we present a higher-level visual programming
environment that represents ITK methods and classes by wrapping them into "blocks" within MATLAB's visual
programming environment, Simulink. These blocks can be connected to form workflows: visual schematics that
closely represent the structure of a C++ program. Due to the heavily C++ templated nature of ITK, direct
interaction between Simulink and ITK requires an intermediary to convert their respective datatypes and allow
intercommunication. We have developed a "Virtual Block" that serves as an intermediate wrapper around the
ITK class and is responsible for resolving the templated datatypes used by ITK to native types used by Simulink.
Presently, the wrapping procedure for SimITK is semi-automatic in that it requires XML descriptions of the
ITK classes as a starting point, as this data is used to create all other necessary integration files. The generation
of all source code and object code from the XML is done automatically by a CMake build script that yields
Simulink blocks as the final result. An example 3D segmentation workflow using cranial-CT data as well as a
3D MR-to-CT registration workflow are presented as a proof-of-concept.