_________________________________________________________________________________________________________
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
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