OTB
 
ORFEO Toolbox (OTB) in few words

In the frame of the Methodological Part of the ORFEO Accompaniment Program to prepare, accompany and promote the use and the exploitation of the images derived from Pleiades (PHR) and Cosmo-Skymed (CSK) systems, the French Space Agency (CNES) decided to develop the Orfeo Toolbox (OTB): a set of algorithmic components which allow to capitalise the methodological know how, and therefore use an incremental approach to take profit of the results of the methodological research.

ORFEO Toolbox (OTB) is distributed as an open source library of image processing algorithms. OTB is based on the medical image processing library ITK and offers particular functionalities for remote sensing image processing in general and for high spatial resolution images in particular. OTB is distributed under a free software licence CeCILL (similar to GPL) to encourage contribution from users and to promote reproducible research. The library is intensively tested on several platforms as Linux, Unix and Windows. Most functionnalies are also adapted to process huge images using streaming and multithreading as often as possible.

Among other, OTB provides a number of heavily documented functionalities as

  • image access: optimized read/write access for most of remote sensing image formats, meta-data access, visualization;
  • filtering: blurring, denoising, enhancement;
  • feature extraction: interest points, alignments, lines;
  • image segmentation: region growing, watershed, level sets;
  • classification: K-means, SVM, Markov random fields;
  • change detection;
  • geometric corrections, orthorectification;
  • radiometric and atmospheric corrections.
Getting help with OTB

The OTB software guide provides an extensive documentation (about 700 pages) and many examples. You can access the software guide by clicking the link on the desktop

The full API (doxygen) is a reference for people who want to develop their own applications using OTB. The doxygen provides all the details concerning classes of the library. You can also access it with the link on the desktop.

Do not hesitate to contact the OTB users mailing list (http://groups.google.com/group/otb-users) if you have more questions or to give us your feedback using OTB.
 

Few words about the live DVD

The purpose of this live DVD is to make it easy to experiment with OTB without going through the installation process. You can also use it to process images stored on a portable hard disk or network from any computer. You should know that this live DVD is based on Xubuntu Linux and has been adapted to suit the requirements of OTB (we will be glad to hear your suggestions).

Now, let us detail the arborescence of the live DVD:

  • /opt/otb contains all the files related to OTB: source, documentation and images;
  • /opt/otb/Sources contains the source of the library, OTB-Applications, Monteverdi and OTB-Wrapping as you can download it from the internet;
  • /opt/otb/Data contains sample data and images necessary to produce the illustrations of the software guide;
  • /opt/otb/Data/Examples is a particularly interesting subfolder of this directory as it contains sample data and images necessary to produce the illustrations of the software guide;
  • /usr/local usr/local/bin directory contains the binaries of: OTB, OTB-Applications and Monteverdi. /usr/local is the directory you want to point to when you are building your own OTB programs;
  • /opt/otb/Documentation/OTBSoftwareGuide-3.4.1.pdf is the software guide, do not hesitate to go through it;
  • /opt/otb/Documentation/API contains the full API of the library. You should avoid opening this folder directly as there is almost 24000 files in it.
Quick start with the live DVD

You can start by launching the Monteverdi application using the desktop link and open one image from the /opt/otb/Data/Examples folder using the Viewer module. If you have some data on a portable hard disk you can also give it a try. This application can handle images with more than a billion of pixels and several spectral bands.

Then, you can try the Interactive Change Detection module. Images /opt/otb/Data/Examples/GomaAvant.png and /opt/otb/Data/Examples/GomaApres.png are particularly suitable. You left click to select some small area where there is some changes (in red). You right click to select a small area without changes (in blue). Then you click Learn, then Classify, and finally Display Results. The classification is based on SVM and you can try different SVM and adjust the parameters.

You can also try the Road Extraction program in OTB-Applications (just run otbRoadExtractionApplication in a terminal). Open for example the image /opt/otb/Data/Examples/qb_RoadExtract.tif then you just have to click on the reference pixel that you consider as a road (spectrally) and the extraction appears.

If you want to go more into programming, you can follow the tutorial from the software guide (Part II, Chapter 4). If you want to save your programs, you should work on a USB key. Plug the USB key, it will open a new window. Create a new folder in it (right-click, new folder) and name it "OTBtutorial" for example. Then open a terminal here (right-click on the folder, Open terminal here). Create the CMakeLists.txt as stated in the tutorial with gedit, entering the command: "gedit CMakeLists.txt".

CMakeLists.txt should contain the following:

PROJECT(Tutorials)
FIND_PACKAGE(OTB)
IF(OTB_FOUND)
INCLUDE(${OTB_USE_FILE})
ELSE(OTB_FOUND)
MESSAGE(FATAL_ERROR
"Cannot build OTB project without OTB. Please set OTB_DIR.")
ENDIF(OTB_FOUND)
ADD_EXECUTABLE(HelloWorldOTB HelloWorldOTB.cxx )
TARGET_LINK_LIBRARIES(HelloWorldOTB OTBCommon OTBIO)

Save the file and exit gedit. Create the HelloWorldOTB.cxx with the command "gedit HelloWorldOTB.cxx". The HelloWorldOTB.cxx file should contain

#include "otbImage.h"
#include <iostream>
int main( int argc, char * argv[] )
{
typedef otb::Image< unsigned short, 2 > ImageType;
ImageType::Pointer image = ImageType::New();
std::cout << "OTB Hello World !" << std::endl;
return 0;
}

Then you can save the file and exit.

It is now time to compile this program: enter the command "ccmake ." Press 'c' to configure. Cmake should stop and ask you for your OTB directory, you set it to /usr/local. Press 'c' again until the generate command becomes available, then you press 'g'. Once it is generated, exit with 'q'. You can now compile using the "make" command. Once it is done, you execute your program with the "./HelloWorldOTB" command.

You can now follow the rest of the tutorials yourself and build your own useful applications.

You have also access to OTB functions in Python thanks to the OTB-Wrapping project which is already installed on the DVD.

If you want to contribute to OTB with a new algorithm, a great application, please do not hesitate to contact the mailing list at http://groups.google.com/group/otb-users or read the information one the OTB website about contributing.

 

Get the live DVD

You can get the OTB live DVD he re (the download can be quite slow so you need to be patient). Once you get it, just burn it and put it on your computer.

Main site