Orfeo Toolbox (OTB) 是一个高分辨率的远程传感图像处理库,包含很多算法组件,涵盖了遥感领域常用的数据分析、机器视觉算法和机器学习算法,近几年发展迅速,可以在QGis Monteverdi 等开源软件中使用,也可以通过命令行调用。如此,OTB同样可以供IDL语言通过Spawn调用。将IDL语言与OTB库结合,不失为开发科研遥感软件的好办法。现成的有德国的EnMap软件,该软件下,只需要通过osgeo安装 OTB-bin,Enmap就可以搜索相关模块并调用之,实现二者的结合。 但是,OTB-bin仅仅集成了OTB内部的modules,一些examples和external project 没有集成。如此,唯有自己编译OTB才能灵活应用。
Windows 下编译OTB的方法在OTB-wiki文档中已经给出十分详细的解释,过程中用到了Cmake。WinGw。Eclipse cdt 等。参考方法的地址如下点击打开链接。但是,在windows上用eclipse -cdt,我始终无法解决“unsolved symbol”的问题。(可能当时对eclipse 的了解认识不够)。
于是移步Ubuntu,期望灵活掌控OTB。下面步入正题:
准备步骤
1 安装Ubuntu系统。建议安装最新版的,这样可以保证支持(更新源),新机Win10 下安装Ubuntu双系统,请用 具有“EFI引导+GPT分区”关键词的方法。
2 安装CMake ,包括CMake-Gui。OTB通过使用CMake解决了跨平台的问题。
3 下载相应源代码。下载OTB-5.4.0 和 SuperBuild Archieve 5.4 点击打开链接。 前者是otb的源代码,后者是otb的依赖库。
设置Build环境
Super build
- 首先执行下面两步。
cd ˜/OTB/build
cmake -D CMAKE_INSTALL_PREFIX=˜/OTB/install ../otb/SuperBuild
上面两个过程,Cmake执行了otb下面的cmakelists文件,会看到OTB/Build 下面增加了很多文件夹,这其实是从otb/superbuild下面copy过来的。这些文件夹暂且不关心,重点是CmakeCache.txt,这里面保存了Cmake的配置信息。当执行完,这一步之后,会出现错误,比如QT、SVM、ITK、GDAL的错误,有可能是Cmake 找不到库的路径,也有可能是由于这些库是在本地编译的,编译没有通过。解决的办法如下 - 出现错误的解决办法。
构建Ecplise工程
cmake -D CMAKE_INSTALL_PREFIX=˜/OTB/install ../otb/SuperBuild -G "Eclipse CDT4 - Unix Makefiles" 通过-G 选项 设定目标平台
接下来就可以在eclipse中open existing project