SimITK: Visual Programming of the ITK Image Processing Library within Simulink

The Insight Segmentation and Registration Toolkit (ITK) is a long-established image processing library used for image analysis, visualisation, and image-guided surgery applications. ITK is a collection of C++ classes that can potentially pose usability problems for users without appropriate C++ prog...

Full description

Bibliographic Details
Main Author: DICKINSON, ANDREW WILLIAM LAIRD
Other Authors: Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))
Language:en
en
Published: 2011
Subjects:
Online Access:http://hdl.handle.net/1974/6717
id ndltd-LACETR-oai-collectionscanada.gc.ca-OKQ.1974-6717
record_format oai_dc
spelling ndltd-LACETR-oai-collectionscanada.gc.ca-OKQ.1974-67172013-12-20T03:40:29ZSimITK: Visual Programming of the ITK Image Processing Library within SimulinkDICKINSON, ANDREW WILLIAM LAIRDLanguage WrappingDataflow ProgrammingVisual ProgrammingImage ProcessingThe Insight Segmentation and Registration Toolkit (ITK) is a long-established image processing library used for image analysis, visualisation, and image-guided surgery applications. ITK is a collection of C++ classes that can potentially pose usability problems for users without appropriate C++ programming experience. In order 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 the visual programming environment of MATLAB, Simulink, where these blocks can be connected to form workflows: visual schematics that closely represent the structure of a C++ program. The heavily C++ templated nature of ITK does not facilitate direct interaction between Simulink and ITK; an intermediary is required to convert respective datatypes and allow intercommunication. As such, a SimITK "Virtual Block" has been developed that serves as a wrapper around the ITK class responsible for resolving the datatypes used by ITK to native types used by Simulink. Part of this challenge surrounds the automated capturing and storage of the pertinent class information (name, inputs/outputs, acceptable datatypes, and allowed dimensionalities) that needs to be reflected within the final block representation. The WrapITK package, included with ITK, serves to generate initial class representations as complex eXtended Markup Language (XML) files that are consolidated and refined to organise the information into an easily accessible structure when extracting during wrapping. Once refined, the data are transferred into custom-written SimITK-templates - one template for each required filetype - through a series of custom-keyword substitutions that replace special keywords with appropriately retrieved XML information and/or programming code. The primary result from the SimITK wrapping procedure is the generation of multiple Simulink Block libraries. From these libraries, blocks are selected and interconnected to demonstrate case study examples: a 3D segmentation workflow using cranial-CT data and a 3D MRI-to-CT registration workflow. Suggestions for future development are included as well as several appendices containing a list of classes, code comparisons between ITK C++ and SimITK workflow, installation documentation (both user and developer), as well as example file templates used to integrate ITK within Simulink.Thesis (Master, Computing) -- Queen's University, 2011-09-13 16:48:53.906Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))2011-09-13 16:48:53.9062011-09-13T22:26:55Z2011-09-13T22:26:55Z2011-09-13Thesishttp://hdl.handle.net/1974/6717enenCanadian thesesThis publication is made available by the authority of the copyright owner solely for the purpose of private study and research and may not be copied or reproduced except as permitted by the copyright laws without written authority from the copyright owner.
collection NDLTD
language en
en
sources NDLTD
topic Language Wrapping
Dataflow Programming
Visual Programming
Image Processing
spellingShingle Language Wrapping
Dataflow Programming
Visual Programming
Image Processing
DICKINSON, ANDREW WILLIAM LAIRD
SimITK: Visual Programming of the ITK Image Processing Library within Simulink
description The Insight Segmentation and Registration Toolkit (ITK) is a long-established image processing library used for image analysis, visualisation, and image-guided surgery applications. ITK is a collection of C++ classes that can potentially pose usability problems for users without appropriate C++ programming experience. In order 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 the visual programming environment of MATLAB, Simulink, where these blocks can be connected to form workflows: visual schematics that closely represent the structure of a C++ program. The heavily C++ templated nature of ITK does not facilitate direct interaction between Simulink and ITK; an intermediary is required to convert respective datatypes and allow intercommunication. As such, a SimITK "Virtual Block" has been developed that serves as a wrapper around the ITK class responsible for resolving the datatypes used by ITK to native types used by Simulink. Part of this challenge surrounds the automated capturing and storage of the pertinent class information (name, inputs/outputs, acceptable datatypes, and allowed dimensionalities) that needs to be reflected within the final block representation. The WrapITK package, included with ITK, serves to generate initial class representations as complex eXtended Markup Language (XML) files that are consolidated and refined to organise the information into an easily accessible structure when extracting during wrapping. Once refined, the data are transferred into custom-written SimITK-templates - one template for each required filetype - through a series of custom-keyword substitutions that replace special keywords with appropriately retrieved XML information and/or programming code. The primary result from the SimITK wrapping procedure is the generation of multiple Simulink Block libraries. From these libraries, blocks are selected and interconnected to demonstrate case study examples: a 3D segmentation workflow using cranial-CT data and a 3D MRI-to-CT registration workflow. Suggestions for future development are included as well as several appendices containing a list of classes, code comparisons between ITK C++ and SimITK workflow, installation documentation (both user and developer), as well as example file templates used to integrate ITK within Simulink. === Thesis (Master, Computing) -- Queen's University, 2011-09-13 16:48:53.906
author2 Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))
author_facet Queen's University (Kingston, Ont.). Theses (Queen's University (Kingston, Ont.))
DICKINSON, ANDREW WILLIAM LAIRD
author DICKINSON, ANDREW WILLIAM LAIRD
author_sort DICKINSON, ANDREW WILLIAM LAIRD
title SimITK: Visual Programming of the ITK Image Processing Library within Simulink
title_short SimITK: Visual Programming of the ITK Image Processing Library within Simulink
title_full SimITK: Visual Programming of the ITK Image Processing Library within Simulink
title_fullStr SimITK: Visual Programming of the ITK Image Processing Library within Simulink
title_full_unstemmed SimITK: Visual Programming of the ITK Image Processing Library within Simulink
title_sort simitk: visual programming of the itk image processing library within simulink
publishDate 2011
url http://hdl.handle.net/1974/6717
work_keys_str_mv AT dickinsonandrewwilliamlaird simitkvisualprogrammingoftheitkimageprocessinglibrarywithinsimulink
_version_ 1716621321701425152