【IDL代码库】Colibri开源软件包
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文件以及描述文字。