_________________________________________________________________________________________________________
The ORFEO Tool Box Software Guide
Updated for OTB-3.16
OTB Development Team
January 31, 2013
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
Downloading OTB
1.5
The OTB Community and Support
1.6
A Brief History of OTB
2
Installation
2.1
Installing binary packages
2.2
Building from sources
2.3
Getting Started With OTB
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
Viewer
4.8
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 Auxilary Data
7.1
Reading DEM Files
7.2
Elevation management with OTB
7.3
Lidar data Files
7.4
Reading and Writing Shapefiles and KML
7.5
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
8.9
Rasterization
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 Independant Component Analysis
18.5
Maximum Autocorrelation Factor
19
Classification
19.1
Introduction
19.2
Statistical Segmentations
19.3
Support Vector Machines
19.4
Kohonen’s Self Organizing Map
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
Geospatial analysis
22.1
Reading from and Writing to Geospatial DBs
23
Hyperspectral
23.1
Unmixing
23.2
Dimensionality reduction
23.3
Anomaly detection
24
Image Visualization and output
24.1
Viewer
24.2
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
V
Appendix
32
Frequently Asked Questions
32.1
Introduction
32.2
Licence
32.3
Getting OTB
32.4
Compiling and installing OTB from source
32.5
Using OTB
32.6
Getting help
32.7
Contributing to OTB
32.8
Running the tests
32.9
OTB’s Roadmap
33
Release Notes
34
Wrappings to other languages
34.1
OTB-Wrapping: bindings to Java language
34.2
Java tutorials
34.3
Python tutorials
34.4
Developer Guide
35
Contributors
Bibliography
Index