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 600 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 CD

The purpose of this live CD 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 CD is based on Xubuntu 7.10 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 CD:

  • /otb contains all the files related to OTB: source, binaries, documentation and images;
  • /otb/OrfeoToolbox-2.0.0 contains the source of the library as you can download it from the internet;
  • /otb/OrfeoToolbox-2.0.0/Examples/Data is a particularly interesting subfolder of this directory as it contains all the data and images necessary to produce the illustrations of the software guide;
  • /otb/OrfeoApplications-2.0.0 contains the source of the applications as you can download it from the internet;
  • /otb/OTB-Binary contains the binaries of the library. This is the directory you want to point to when you are building your own OTB programs;
  • /otb/OTB-Binary-Applications contains the binaries of the applications;
  • /otb/OTBSoftwareGuide-2.0.pdf is the software guide, do not hesitate to go through it;
  • /otb/Doxygen contains the full API of the library. You should avoid opening this folder directly as there is more than 12000 files in it. Use the link on the desktop instead

 

Quick start with the live CD

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

Then, you can try the Interactive Change Detection program. Images /otb/OrfeoToolbox-2.0.0/Examples/Data/GomaAvant.png and /otb/OrfeoToolbox-2.0.0/Examples/Data/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. Image /otb/OrfeoToolbox-2.0.0/Examples/Data/qb_RoadExtract.tif is loaded by default. 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 /otb/OTB-Binary. 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.

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 if you want to have more information about that, you can contact directly the CNES team for OTB at otb_at_cnes_dot_fr.

 

Get the live CD

You can get the OTB live CD here (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.