相关文章推荐
乐观的桔子  ·  C++ ...·  1 年前    · 

Colibri 介绍

Colibri 是一个基于 ENVI/IDL 平台实现的一个开源软件包。里边包含了多种多样的算法和程序。

代码是使用不同子文件夹来存储的。每一个文件夹内都含有一些源码文件。在根目录下的 Reference Guide.html 文件中包含了所有对象及函数的功能介绍、调用方法等,类似于 IDL 帮助。

  • Application – General :含有一些通用功能,比如图像分类、创建合成图像、 DSM 转换为 DTM 等功能
  • Application – Toolbox :包含两个 GUI 应用程序,功能分别为图像分类后处理(可以新增类别、修改类别等)、高光谱数据处理(光谱平滑,可进行批处理)。
  • Classes :此文件夹包含了一些通用功能代码,主要为自定义类。
  • Common :此文件夹包含了一些图像处理函数。如图像分类、 SVM RMSE 计算等。
  • Documents :此文件夹包含了一些参考文献和 LOGO 等文件。
  • Examples :包含了一些示例代码和示例数据。
  • 图: Colibri 软件包目录以及 Reference Guide.html 文件内容

    下载地址: http://sourceforge.net/projects/enviidlcodelibr/

  • 打开 IDL 工作台;
  • 新建工程,输入工程名(如 Colibri );
  • 将下载压缩包的文件解压,拷贝到新建的工程文件夹下;
  • 在工程名上右键选择“构建工程”,主要为了编译所有 PRO 源码文件。
  • 下面以两个带有 GUI 的工具为例,介绍使用方法。
  • EOSap_ClassEditor — 分类结果编辑器

    因为此功能调用了 ENVI 库函数和组件,所以需要在 IDL 控制台输入“ ENVI ”启动 ENVI 。找到 \Colibri\Applications\Toolbox\Classification\EOSap_ClassEditor\GUI\

    EOSap_ClassEditor.pro 文件,编译运行即可。用户界面如下图所示:

    可以通过“ Input classified image ”按钮导入分类结果图像( ENVI 格式),支持功能如下:

  • 右侧可以添加新的类别;
  • 可以通过鼠标右键在三个窗体中绘制多边形,选中“ Change Input Class ”和“ To New Output Class ”之后,点击“箭头”位置按钮即可完成类别转换;
  • 支持将编辑后结果保存出来。
  • 图:分类结果编辑工具

    图:新增水体类别,并将绘制区域由农田转化为水体

    EOSap_Smoothing — 高光谱平滑工具

    此工具使用方法与分类结果编辑器工具类似,同样需要先启动 ENVI ,然后运行 Colibri\Applications\Toolbox\Hyperspectral\EOSap_Smoothing\GUI\

    EOSap_Smoothing.pro 文件即可。得到如下图所示用户界面。

  • 通过“ Select Image File ”导入高光谱数据( ENVI 格式);
  • 通过设置“ Set Smooth Factor ”应用平滑操作,并且支持对不同波段设置不同的系数;
  • 在光谱曲线视窗中可预览平滑效果(绿色为平滑前的原始光谱,黄色为平滑后结果);
  • 参数设置好之后,切换到 “ Apply Smoothing Parameters ”选项卡,通过“ Input directory ”选中输入数据路径,在列表中显示出文件列表,选中要处理的文件名,设定好输出路径,点击 Start 即可。支持批处理操作。
  • 并且可以将平滑参数保存在本地,以备下次使用。
  • 图:高光谱平滑工具主界面

    图:应用平滑操作,可进行批处理

    图:平滑前后光谱曲线对比(左:平滑前,右:平滑后)

    注:上述两个工具均可在主界面点击“?”按钮查看 pdf 说明文档。

    除了这两个带有用户界面的功能外,还有很多其他功能函数,感兴趣的可以详细研究每个 PRO 文件以及描述文字。