ITK Handout

Download ITK Handout

Post on 11-Mar-2015

1.572 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

<p>Medical Visualization with ITK How to integrate the Insight Toolkit into Visualization Applications</p> <p>Lydia Ng Josh Cates Yarden Livnat Luis Ibanez and the Insight Consortium</p> <p>August 18, 2003</p> <p>http://www.itk.org Email:insight-users@public.kitware.com</p> <p>The purpose of computing is Insight, not numbers. Richard Hamming</p> <p>CONTENTS</p> <p>1</p> <p>Welcome 1.1 Organization . . . . . . . . . . . . . . . . 1.2 How to Learn ITK . . . . . . . . . . . . . 1.3 Downloading ITK . . . . . . . . . . . . . 1.3.1 Downloading Packaged Releases . 1.3.2 Downloading from CVS . . . . . 1.3.3 Join the Mailing List . . . . . . . 1.3.4 Directory Structure . . . . . . . . 1.3.5 Documentation . . . . . . . . . . 1.3.6 Data . . . . . . . . . . . . . . . . 1.3.7 Additional Resources . . . . . . . 1.4 A Brief History of ITK . . . . . . . . . . . 1.5 Software Process . . . . . . . . . . . . . . 1.5.1 CVS Source Code Repository . . 1.5.2 DART Regression Testing System 1.5.3 Working The Process . . . . . . . 1.5.4 The Effectiveness of the Process . 1.6 Installation . . . . . . . . . . . . . . . . . 1.6.1 Conguring ITK . . . . . . . . . Preparing CMake . . . . . . . . . . Conguring ITK . . . . . . . . . . 1.6.2 Getting Started With ITK . . . . Hello World ! . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>1 1 1 2 2 2 2 3 4 5 5 5 5 6 6 8 8 8 9 9 10 11 11 13 13 13 16 19 21 24 25 28 35 35 35 36 41</p> <p>2</p> <p>Segmentation 2.1 Introduction . . . . . . . . . . . . . . . . . . . 2.2 Region Growing . . . . . . . . . . . . . . . . . 2.2.1 Condence Connected . . . . . . . . . 2.3 Watershed Segmentation . . . . . . . . . . . . . 2.3.1 Using the Insight Watershed Filter . . . 2.4 Level-Set Methods . . . . . . . . . . . . . . . . 2.4.1 Threshold Level Set Segmentation . . . 2.4.2 Geodesic Active Contours Segmentation Registration 3.1 Introduction . . . . . . 3.2 Registration Framework 3.3 Hello World Registration 3.4 Monitoring Registration</p> <p>3</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>. . . .</p> <p>3.5</p> <p>3.6 3.7</p> <p>3.8 3.9</p> <p>Transforms . . . . . . . . . . . . . . . . . . . . . 3.5.1 Transform General Properties . . . . . . 3.5.2 Identity Transform . . . . . . . . . . . . 3.5.3 Translation Transform . . . . . . . . . . 3.5.4 Scale Transform . . . . . . . . . . . . . . 3.5.5 Euler2DTransform . . . . . . . . . . . . 3.5.6 CenteredRigid2DTransform . . . . . . . 3.5.7 Similarity2DTransform . . . . . . . . . . 3.5.8 QuaternionRigidTransform . . . . . . . . 3.5.9 VersorTransform . . . . . . . . . . . . . 3.5.10 VersorRigid3DTransform . . . . . . . . . 3.5.11 AfneTransform . . . . . . . . . . . . . Interpolators . . . . . . . . . . . . . . . . . . . . Metric . . . . . . . . . . . . . . . . . . . . . . . 3.7.1 Mean Squares Metric . . . . . . . . . . . 3.7.2 Normalized Correlation Metric . . . . . . 3.7.3 Mean Reciprocal Square Differences . . . 3.7.4 Mutual Information Metric . . . . . . . . Parzen Windowing . . . . . . . . . . . . . Viola and Wells Implementation . . . . . . Mattes et al Implementation . . . . . . . . Optimizier . . . . . . . . . . . . . . . . . . . . . Medical Imaging Examples . . . . . . . . . . . . 3.9.1 Multi-modality Multi-resolution Example 3.9.2 Deformable Registration Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>42 42 43 43 43 44 44 45 45 45 46 46 46 47 47 48 48 48 49 50 50 50 51 51 54 59 59 59 60 61 64 64 65 67 73 73 73 74 74 76 76 76 77 78 81 81 81 82 83 83 85</p> <p>4 Integrating ITK with GUI Toolkits 4.1 FLTK . . . . . . . . . . . . . . . . 4.1.1 Installing the software . . 4.1.2 Conguring with CMake . 4.1.3 Writing a simple example . 4.2 Qt . . . . . . . . . . . . . . . . . . 4.2.1 Installing the Software . . 4.2.2 Conguring with CMake . 4.2.3 Writing a simple example .</p> <p>5 Case Study IIntegrating ITK with Volview 5.1 Overview . . . . . . . . . . . . . . . . 5.2 VolView Plugins Use Cases . . . . . . 5.3 Plugin Data Flow . . . . . . . . . . . . 5.4 Plugin Life Cycle . . . . . . . . . . . . 5.5 Writing a Plugin . . . . . . . . . . . . 5.5.1 Dene the plugin name . . . . 5.5.2 The initialization function . . 5.5.3 The ProcessData function . . . 5.5.4 Refreshing the GUI . . . . . . 6 ITK Integration with SCIRun 6.1 Introduction . . . . . . . . . . 6.2 Aims . . . . . . . . . . . . . . 6.3 SCIRun . . . . . . . . . . . . . 6.4 Approach . . . . . . . . . . . . 6.5 The XML description . . . . . 6.6 Wrapping ITK lters in SCIRun . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>6.7</p> <p>6.8</p> <p>Example . . . . . . . . . . . . . . 6.7.1 itk ReectImageFilter.xml 6.7.2 sci ReectImageFilter.xml 6.7.3 Conguring SCIRun . . . 6.7.4 Adding a Specic GUI . . Conclusions . . . . . . . . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>. . . . . .</p> <p>86 86 87 88 89 89</p> <p>LIST OF FIGURES</p> <p>1.1 1.2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9</p> <p>Dart Quality Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cmake user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ConnectedThreshold segmentation results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CondenceConnected segmentation results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Watershed Catchment Basins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Watersheds Hierarchy of Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Watershed segmentation output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zero Set Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Grid position of the embedded level-set surface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ThresholdSegmentationLevelSetImageFilter collaboration diagram . . . . . . . . . . . . . . . . . . . Propagation term for threshold-based level-set segmentation . . . . . . . . . . . . . . . . . . . . . .</p> <p>7 10 16 19 20 20 23 24 25 26 26 28 29 32 33 36 39 40 40 41 42 49 52 52 53</p> <p>2.10 ThresholdSegmentationLevelSet segmentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.11 GeodesicActiveContourLevelSetImageFilter collaboration diagram . . . . . . . . . . . . . . . . . . . 2.12 GeodesicActiveContourLevelSetImageFilter intermediate output . . . . . . . . . . . . . . . . . . . . 2.13 GeodesicActiveContourImageFilter segmentations . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 Registration Framework Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fixed and Moving images in registration framework . . . . . . . . . . . . . . . . . . . . . . . . . . . Pipeline structure of the registration example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . HelloWorld registration output images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Trace of translations and metrics during registration . . . . . . . . . . . . . . . . . . . . . . . . . . . Command/Observer and the Registration Framework . . . . . . . . . . . . . . . . . . . . . . . . . . Parzen windowing in Mutual Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3D CT image of the head . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3D MR-T1 image of the head . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .</p> <p>3.10 Pyramid of downsampled versions of a CT image of the head. . . . . . . . . . . . . . . . . . . . . .</p> <p>2</p> <p>List of Figures</p> <p>3.11 Pyramid of downsampled version of a MR-T1 image of the head. . . . . . . . . . . . . . . . . . . . . 3.12 Multi-modality registration initialization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.13 Multi-modality registration results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.14 Joint intensity histogram before and after registration. . . . . . . . . . . . . . . . . . . . . . . . . . . 3.15 3D contrast-enhanced breast MRI Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.16 Contrast-enhanced breast MRI deformable registration results. . . . . . . . . . . . . . . . . . . . . . 4.1 4.2 4.3 4.4 4.5 4.6 5.1 5.2 5.3 6.1 6.2 6.3 6.4 6.5 Command-Observer conguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Command-Event-Object communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FLTK ProgressBar and ITK Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Qt-ITK Adaptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Qt-ITK Signal Adaptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Qt-ITK Slot Adaptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VolView plugin data ow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VolView plugin life cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VolView screen shot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The SCIRun problem solving environment. . . . . . . . . . . . . . . . . . . . . . ....</p>