title: SimITK: visual programming of the ITK image-processing library within Simulink.
abstract: The Insight Segmentation and Registration Toolkit (ITK) is a software library used for image analysis, visualization, and image-guided surgery applications. ITK is a collection of C++ classes that poses the challenge of a steep learning curve should the user not have appropriate C++ programming experience. To remove the programming complexities and facilitate rapid prototyping, an implementation of ITK within a higher-level visual programming environment is presented: SimITK. ITK functionalities are automatically wrapped into "blocks" within Simulink, the visual programming environment of MATLAB, where these blocks can be connected to form workflows: visual schematics that closely represent the structure of a C++ program. The heavily templated C++ nature of ITK does not facilitate direct interaction between Simulink and ITK; an intermediary is required to convert respective data types and allow intercommunication. As such, a SimITK "Virtual Block" has been developed that serves as a wrapper around an ITK class which is capable of resolving the ITK data types to native Simulink data types. Part of the challenge surrounding this implementation involves automatically capturing and storing the pertinent class information that need to be refined from an initial state prior to being reflected within the final block representation. The primary result from the SimITK wrapping procedure is multiple Simulink block libraries. From these libraries, blocks are selected and interconnected to demonstrate two examples: a 3D segmentation workflow and a 3D multimodal registration workflow. Compared to their pure-code equivalents, the workflows highlight ITK usability through an alternative visual interpretation of the code that abstracts away potentially confusing technicalities.
authors.affiliation: School of Computing, Queen's University, Goodwin Hall, 25 Union Street, Kingston, ON, K7L 3N6, Canada, andrew@cs.queensu.ca.
authors.forename: Andrew W L
authors.initials: AW
authors.lastname: Dickinson
authors.forename: Purang
authors.initials: P
authors.lastname: Abolmaesumi
authors.forename: David G
authors.initials: DG
authors.lastname: Gobbi
authors.forename: Parvin
authors.initials: P
authors.lastname: Mousavi
mesh_terms: D000465:Algorithms; D003952:Diagnostic Imaging; D006801:Humans; D007091:Image Processing, Computer-Assisted / Q000379:methods*; D021621:Imaging, Three-Dimensional; D008491:Medical Informatics Applications; D012984:Software; D018511:Systems Integration; D014584:User-Computer Interface