ENVI5.0 Beta体验-二次开发
ENVI5.0Beta提供了全新的界面,拥有了良好的操作体验效果,见https://www.cnblogs.com/enviidl/p/16521796.html。ENVI的二次开发方式在保留原来的功能强大、方便调用的二次开发模式(ENVI Batch mode)基础上,对界面控制和扩展方面进行了更新:
1、 命令行下灵活的界面控制
;启动ENVI IDL> e = envi() ;定义输入影像文件完整路径名称 ENVI> file = FILEPATH('qb_boulder_msi', SUBDIR = ['products', 'envidata']) ;打开影像文件 ENVI> image = e.OpenRaster(file) ;获取当前显示窗体 ENVI> view1 = e.GetView() ;显示窗体中真彩色合成显示图像,见图1 ENVI> rgb = view1.CreateLayer(image) ;添加第二个显示窗体 ENVI> view2 = e.CreateView() ;第二个显示窗体中假彩色合成显示图像 ENVI> cir = view2.CreateLayer(image, /CIR) ;地理关联两个显示窗体,见图1 ENVI> view1.GeoLink, view2 ;关闭显示窗体1 ENVI> view1.Close ;退出ENVI ENVI> e.close |
图1 命令行下显示真彩色合成图像
2、 方便易用的ENVI工具箱扩展
1)
启动IDL,点击菜单“New ENVI Extension…”,见图3.
在工具扩展项目属性中输入扩展名称与功能函数等参数,如图4
图4 扩展工具参数设置
2)
点击按钮“完成”,IDL会自动创建工程“MyExtension”和源码文件“emboss_band1.pro”,并在源码文件中提供代码框架,见图5。
图5 自动生成的扩展工具代码框架
编写工具扩展功能代码,打开影像文件并对比闪烁显示的代码如下:
… ;****************************************** |
3)
可以通过工程构建方式生成或命令行下生成,如命令行下生成代码:
IDL> .RESET_SESSION IDL> .COMPILE emboss_band1.pro IDL> RESOLVE_ALL, /CONTINUE_ON_ERROR, SKIP_ROUTINES='ENVI' IDL> SAVE, FILENAME='emboss_band1.sav', /routines |
4)
将生成的sav文件拷贝到ENVI5.0安装目录下enviextensions子目录,重启ENVI。在ENVI的ToolBox下Extensions下发现新编写的工具,双击执行后效果见图6。
图6 扩展工具调用