___________________________________________________________________________

The ITK Software Guide
Book 1: Introduction and Development Guidelines
Fourth Edition
Updated for ITK version 5.0.0

Hans J. Johnson, Matthew M. McCormick, Luis Ibáñez, and the Insight Software Consortium
May 28, 2019
https://itk.org
https://discourse.itk.org/

PIC

The purpose of computing is Insight, not numbers.

      Richard Hamming

Abstract
Contributors
Contents
List of Figures
List of Tables
I  Introduction
1 Welcome
 1.1 Organization
 1.2 How to Learn ITK
 1.3 Software Organization
 1.4 The Insight Community and Support
 1.5 A Brief History of ITK
2 Configuring and Building ITK
 2.1 Obtaining the Software
 2.2 Using CMake for Configuring and Building ITK
 2.3 Cross compiling ITK
 2.4 Getting Started With ITK
 2.5 Using ITK as an External Library
II  Architecture
3 System Overview
 3.1 System Organization
 3.2 Essential System Concepts
 3.3 Numerics
 3.4 Data Representation
 3.5 Data Processing Pipeline
 3.6 Spatial Objects
 3.7 Wrapping
4 Data Representation
 4.1 Image
 4.2 PointSet
 4.3 Mesh
 4.4 Path
 4.5 Containers
5 Spatial Objects
 5.1 Introduction
 5.2 Hierarchy
 5.3 Transformations
 5.4 Types of Spatial Objects
 5.5 Read/Write SpatialObjects
 5.6 Statistics Computation via SpatialObjects
6 Iterators
 6.1 Introduction
 6.2 Programming Interface
 6.3 Image Iterators
 6.4 Neighborhood Iterators
7 Image Adaptors
 7.1 Image Casting
 7.2 Adapting RGB Images
 7.3 Adapting Vector Images
 7.4 Adaptors for Simple Computation
 7.5 Adaptors and Writers
III  Development Guidelines
8 How To Write A Filter
 8.1 Terminology
 8.2 Overview of Filter Creation
 8.3 Streaming Large Data
 8.4 Threaded Filter Execution
 8.5 Filter Conventions
 8.6 How To Write A Composite Filter
9 How To Create A Module
 9.1 Name and dependencies
 9.2 Headers
 9.3 Libraries
 9.4 Tests
 9.5 Wrapping
 9.6 Third-Party Dependencies
 9.7 Contributing with a Remote Module