Frontiers in Neuroinformatics (Dec 2013)
The Design of SimpleITK
Abstract
SimpleITK is a new interface to the Insight Segmentation andRegistration Toolkit (ITK) designed to facilitate rapid prototyping, educationand scientific activities, via high level programminglanguages. ITK is a templated C++ library of image processingalgorithms and frameworks for biomedical and other applications, andit was designed to be generic, flexible and extensible. Initially, ITKprovided a direct wrapping interface to languages such as Python andTcl through the WrapITK system. Unlike WrapITK, which exposed ITK'scomplex templated interface, SimpleITK was designed to provide an easyto use and simplified interface to ITK's algorithms. It includesprocedural methods, hides ITK's demand driven pipeline, and provides atemplate-less layer. Also SimpleITK provides practical conveniencessuch as binary distribution packages and overloaded operators. Ouruser-friendly design goals dictated a departure from the directinterface wrapping approach of WrapITK, towards a new facadeclass structure that only exposes the required functionality, hidingITK's extensive template use. Internally SimpleITK utilizes a manualdescription of each filter with code-generation and advanced C++meta-programming to provide the higher-level interface, bringing thecapabilities of ITK to a wider audience. SimpleITK is licensed asopen source software under the Apache License Version 2.0 and more informationabout downloading it can be found at http://www.simpleitk.org.
Keywords