PIC _________________________________________________________________________________________________________

The ORFEO Tool Box Software Guide
Updated for OTB-6.6.1

OTB Development Team
December 20, 2018
http://www.orfeo-_toolbox.org
e-mail: otb@cnes.fr

PIC

The ORFEO Toolbox is not a black box.

      Ch.D.

Foreword
Contents
List of Figures
List of Tables
I  Introduction
1 Welcome
 1.1 Organization
 1.2 How to Learn OTB
 1.3 Software Organization
 1.4 The OTB Community and Support
 1.5 A Brief History of OTB
2 Compiling OTB from source
 2.1 GNU/Linux and macOS
 2.2 Windows
 2.3 Known issues
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
II  Tutorials
4 Building Simple Applications with OTB
 4.1 Hello world
 4.2 Pipeline basics: read and write
 4.3 Filtering pipeline
 4.4 Handling types: scaling output
 4.5 Working with multispectral or color images
 4.6 Parsing command line arguments
 4.7 Going from raw satellite images to useful products
III  User’s guide
5 Data Representation
 5.1 Image
 5.2 PointSet
 5.3 Mesh
 5.4 Path
6 Reading and Writing Images
 6.1 Basic Example
 6.2 Pluggable Factories
 6.3 IO Streaming
 6.4 Reading and Writing RGB Images
 6.5 Reading, Casting and Writing Images
 6.6 Extracting Regions
 6.7 Reading and Writing Vector Images
 6.8 Reading and Writing Multiband Images
 6.9 Reading Image Series
7 Reading and Writing Auxiliary Data
 7.1 Reading DEM Files
 7.2 Elevation management with OTB
 7.3 Reading and Writing Shapefiles and KML
 7.4 Handling large vector data through OGR
8 Basic Filtering
 8.1 Thresholding
 8.2 Mathematical operations on images
 8.3 Gradients
 8.4 Second Order Derivatives
 8.5 Edge Detection
 8.6 Neighborhood Filters
 8.7 Smoothing Filters
 8.8 Distance Map
9 Image Registration
 9.1 Registration Framework
 9.2 ”Hello World” Registration
 9.3 Features of the Registration Framework
 9.4 Multi-Modality Registration
 9.5 Centered Transforms
 9.6 Transforms
 9.7 Metrics
 9.8 Optimizers
 9.9 Landmark-based registration
10 Disparity Map Estimation
 10.1 Disparity Maps
 10.2 Regular grid disparity map estimation
 10.3 Irregular grid disparity map estimation
 10.4 Stereo reconstruction
11 Orthorectification and Map Projection
 11.1 Sensor Models
 11.2 Map Projections
 11.3 Orthorectification with OTB
 11.4 Vector data projection manipulation
 11.5 Geometries projection manipulation
 11.6 Elevation management with OTB
 11.7 Vector data area extraction
12 Radiometry
 12.1 Radiometric Indices
 12.2 Atmospheric Corrections
13 Image Fusion
 13.1 Simple Pan Sharpening
 13.2 Bayesian Data Fusion
14 Feature Extraction
 14.1 Textures
 14.2 Interest Points
 14.3 Alignments
 14.4 Lines
 14.5 Density Features
 14.6 Geometric Moments
 14.7 Road extraction
 14.8 Cloud Detection
15 Multi-scale Analysis
 15.1 Introduction
 15.2 Morphological Pyramid
16 Image Segmentation
 16.1 Region Growing
 16.2 Segmentation Based on Watersheds
 16.3 Level Set Segmentation
17 Image Simulation
 17.1 PROSAIL model
 17.2 Image Simulation
18 Dimension Reduction
 18.1 Principal Component Analysis
 18.2 Noise-Adjusted Principal Components Analysis
 18.3 Maximum Noise Fraction
 18.4 Fast Independent Component Analysis
 18.5 Maximum Autocorrelation Factor
19 Classification
 19.1 Introduction
 19.2 Machine Learning Framework
 19.3 Supervised classification
 19.4 Unsupervised classification
 19.5 Fusion of Classification maps
 19.6 Classification map regularization
20 Object-based Image Analysis
 20.1 From Images to Objects
 20.2 Object Attributes
 20.3 Object Filtering based on radiometric and statistics attributes
 20.4 Hoover metrics to compare segmentations
21 Change Detection
 21.1 Introduction
 21.2 Change Detection Framework
 21.3 Simple Detectors
 21.4 Statistical Detectors
 21.5 Multi-Scale Detectors
 21.6 Multi-components detectors
22 Hyperspectral
 22.1 Unmixing
 22.2 Dimensionality reduction
 22.3 Anomaly detection
23 Image Visualization and output
 23.1 Images
24 Online data
 24.1 Name to Coordinates
 24.2 Open Street Map
IV  Developer’s guide
25 Iterators
 25.1 Introduction
 25.2 Programming Interface
 25.3 Image Iterators
 25.4 Neighborhood Iterators
26 Image Adaptors
 26.1 Image Casting
 26.2 Adapting RGB Images
 26.3 Adapting Vector Images
 26.4 Adaptors for Simple Computation
 26.5 Adaptors and Writers
27 Streaming and Threading
 27.1 Introduction
 27.2 Streaming and threading in OTB
 27.3 Division strategies
28 How To Write A Filter
 28.1 Terminology
 28.2 Overview of Filter Creation
 28.3 Streaming Large Data
 28.4 Threaded Filter Execution
 28.5 Filter Conventions
 28.6 How To Write A Composite Filter
29 Persistent filters
 29.1 Introduction
 29.2 Architecture
 29.3 An end-to-end example
30 How to write an application
 30.1 Application design
 30.2 Architecture of the class
 30.3 Composite application
 30.4 Compile your application
 30.5 Execute your application
 30.6 Testing your application
 30.7 Application Example
31 Adding New Modules
 31.1 How to Write a Module
 31.2 The otb-module.cmake file
 31.3 The CMakeLists.txt file
 31.4 The include folder
 31.5 The src folder
 31.6 The app folder
 31.7 The test folder
 31.8 Including a remote module in OTB
32 Contributors Guidelines
V  Appendix
33 Wrappings to other languages
 33.1 OTB-Wrapping: bindings to Java language
34 Contributors
Bibliography
Index