PIC _________________________________________________________________________________________________________

The ORFEO Tool Box Software Guide
Updated for OTB-5.2.1

OTB Development Team
January 24, 2016
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 Linux and Mac OS X
 2.2 Windows
 2.3 Known issues
3 Compiling ICE and Monteverdi from source
 3.1 Linux and Mac OS X
 3.2 Windows
4 System Overview
 4.1 System Organization
 4.2 Essential System Concepts
 4.3 Numerics
 4.4 Data Representation
 4.5 Data Processing Pipeline
 4.6 Spatial Objects
II  Tutorials
5 Building Simple Applications with OTB
 5.1 Hello world
 5.2 Pipeline basics: read and write
 5.3 Filtering pipeline
 5.4 Handling types: scaling output
 5.5 Working with multispectral or color images
 5.6 Parsing command line arguments
 5.7 Going from raw satellite images to useful products
III  User’s guide
6 Data Representation
 6.1 Image
 6.2 PointSet
 6.3 Mesh
 6.4 Path
7 Reading and Writing Images
 7.1 Basic Example
 7.2 Pluggable Factories
 7.3 IO Streaming
 7.4 Reading and Writing RGB Images
 7.5 Reading, Casting and Writing Images
 7.6 Extracting Regions
 7.7 Reading and Writing Vector Images
 7.8 Reading and Writing Multiband Images
 7.9 Reading Image Series
 7.10 Extended filename for reader and writer
8 Reading and Writing Auxilary Data
 8.1 Reading DEM Files
 8.2 Elevation management with OTB
 8.3 Reading and Writing Shapefiles and KML
 8.4 Handling large vector data through OGR
9 Basic Filtering
 9.1 Thresholding
 9.2 Mathematical operations on images
 9.3 Gradients
 9.4 Second Order Derivatives
 9.5 Edge Detection
 9.6 Neighborhood Filters
 9.7 Smoothing Filters
 9.8 Distance Map
10 Image Registration
 10.1 Registration Framework
 10.2 ”Hello World” Registration
 10.3 Features of the Registration Framework
 10.4 Multi-Modality Registration
 10.5 Centered Transforms
 10.6 Transforms
 10.7 Metrics
 10.8 Optimizers
 10.9 Landmark-based registration
11 Disparity Map Estimation
 11.1 Disparity Maps
 11.2 Regular grid disparity map estimation
 11.3 Irregular grid disparity map estimation
 11.4 Stereo reconstruction
12 Orthorectification and Map Projection
 12.1 Sensor Models
 12.2 Map Projections
 12.3 Orthorectification with OTB
 12.4 Vector data projection manipulation
 12.5 Geometries projection manipulation
 12.6 Elevation management with OTB
 12.7 Vector data area extraction
13 Radiometry
 13.1 Radiometric Indices
 13.2 Atmospheric Corrections
14 Image Fusion
 14.1 Simple Pan Sharpening
 14.2 Bayesian Data Fusion
15 Feature Extraction
 15.1 Textures
 15.2 Interest Points
 15.3 Alignments
 15.4 Lines
 15.5 Density Features
 15.6 Geometric Moments
 15.7 Road extraction
 15.8 Cloud Detection
16 Multi-scale Analysis
 16.1 Introduction
 16.2 Morphological Pyramid
17 Image Segmentation
 17.1 Region Growing
 17.2 Segmentation Based on Watersheds
 17.3 Level Set Segmentation
18 Image Simulation
 18.1 PROSAIL model
 18.2 Image Simulation
19 Dimension Reduction
 19.1 Principal Component Analysis
 19.2 Noise-Adjusted Principal Components Analysis
 19.3 Maximum Noise Fraction
 19.4 Fast Independant Component Analysis
 19.5 Maximum Autocorrelation Factor
20 Classification
 20.1 Introduction
 20.2 Unsupervised classification
 20.3 Supervised classification
 20.4 Fusion of Classification maps
 20.5 Classification map regularization
21 Object-based Image Analysis
 21.1 From Images to Objects
 21.2 Object Attributes
 21.3 Object Filtering based on radiometric and statistics attributes
 21.4 Hoover metrics to compare segmentations
22 Change Detection
 22.1 Introduction
 22.2 Change Detection Framework
 22.3 Simple Detectors
 22.4 Statistical Detectors
 22.5 Multi-Scale Detectors
 22.6 Multi-components detectors
23 Hyperspectral
 23.1 Unmixing
 23.2 Dimensionality reduction
 23.3 Anomaly detection
24 Image Visualization and output
 24.1 Images
25 Online data
 25.1 Name to Coordinates
 25.2 Open Street Map
IV  Developer’s guide
26 Iterators
 26.1 Introduction
 26.2 Programming Interface
 26.3 Image Iterators
 26.4 Neighborhood Iterators
27 Image Adaptors
 27.1 Image Casting
 27.2 Adapting RGB Images
 27.3 Adapting Vector Images
 27.4 Adaptors for Simple Computation
 27.5 Adaptors and Writers
28 Streaming and Threading
 28.1 Introduction
 28.2 Streaming and threading in OTB
 28.3 Division strategies
29 How To Write A Filter
 29.1 Terminology
 29.2 Overview of Filter Creation
 29.3 Streaming Large Data
 29.4 Threaded Filter Execution
 29.5 Filter Conventions
 29.6 How To Write A Composite Filter
30 Persistent filters
 30.1 Introduction
 30.2 Architecture
 30.3 An end-to-end example
31 How to write an application
 31.1 Application design
 31.2 Architecture of the class
 31.3 Compile your application
 31.4 Execute your application
 31.5 Testing your application
 31.6 Application Example
32 Adding New Modules
 32.1 How to Write a Module
 32.2 The otb-module.cmake file
 32.3 The CMakeLists.txt file
 32.4 The include folder
 32.5 The src folder
 32.6 The app folder
 32.7 The test folder
 32.8 Including a remote module in OTB
33 Contributors Guidelines
 33.1 How to Contribute
 33.2 What are remote modules?
 33.3 How to get your remote module inside OTB?
 33.4 Remote module acceptance policy
 33.5 Remote module release policy
V  Appendix
34 Frequently Asked Questions
 34.1 Introduction
 34.2 License
 34.3 Getting OTB
 34.4 Special issues about compiling OTB from source
 34.5 Using OTB
 34.6 Getting help
 34.7 Contributing to OTB
 34.8 Running the tests
 34.9 OTB’s Roadmap
35 Release Notes
36 Wrappings to other languages
 36.1 OTB-Wrapping: bindings to Java language
37 Contributors
Index