_________________________________________________________________________________________________________
The ORFEO Tool Box Software Guide
Updated for OTB-5.4.0
OTB Development Team
April 29, 2016
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
Linux and Mac OS X
2.2
Windows
2.3
Known issues
3
Compiling 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
Bibliography
Index