VC调用ENVI/IDL进行二次开发实战指南

需积分: 9 4 下载量 71 浏览量 更新于2024-08-21 收藏 2.3MB PPT 举报
"这篇资源主要介绍了如何在VC环境中调用ENVI(Environment for Visualizing Images)的函数,以及ENVI的二次开发方法。通过在VC工程中引入idl_export.h头文件,链接idl.lib库,设置环境变量,可以实现对IDL(Interactive Data Language)的调用,从而执行ENVI相关的遥感图像处理任务。此外,还提到了ENVI菜单的定制,包括自定义坐标系、波段运算、批处理和与ArcGIS的一体化集成方案。" 在VC调用ENVI/IDL的过程中,首先需要在VC的MFC工程中引入idl_export.h头文件,这是为了能够访问IDL的API。接着,要在工程设置中添加idl.lib作为链接库,确保编译器知道如何连接到IDL的实现。同时,需要在Library files的目录设置中添加IDL的BIN路径,以便编译器能找到所需的库文件。最后,通过修改系统环境变量PATH,确保运行时能定位到IDL的可执行文件。在代码中,通过IDL_Win32Init、IDL_ExecuteStr和IDL_Cleanup等函数进行初始化、执行命令和清理工作。 ENVI的二次开发主要包括以下几个方面: 1. **菜单的定制与自定义坐标系**:ENVI的菜单文件存储在特定的目录下,如"display.men"、"display_shortcut.men"和"envi.men"。通过编辑这些菜单文件,可以自定义菜单项,包括菜单的层次结构、按钮名称、用户值和事件处理器。例如,通过在"envi.men"文件中添加新条目,可以创建新的功能菜单,并通过编写IDL程序来响应用户的操作。 2. **波段运算与批处理**:ENVI支持对遥感图像的波段进行运算,这可以通过编写IDL程序实现。例如,可以处理多个波段的数据,进行融合、分类、增强等操作。批处理功能允许一次性处理多幅图像,提高工作效率。 3. **ENVI函数**:ENVI提供了丰富的函数库,用于遥感数据的读取、处理和分析。通过学习和应用这些函数,开发者可以实现复杂的遥感图像处理任务。 4. **ENVI/IDL与ArcGIS一体化集成方案**:ENVI和IDL可以与GIS软件如ArcGIS集成,实现地理空间数据的无缝对接,提供从数据处理到制图的完整解决方案。这通常涉及到编写自定义的IDL程序,通过接口与ArcGIS交互。 在提供的例子中,展示了如何在ENVI的菜单中添加一个新的功能“MyFunctions”,并编写了一个名为“file_info”的IDL程序来响应用户的选择。这个程序通过ENVI_SELECT对话框让用户选择文件,然后查询文件信息并打印出来。这只是一个简单的示例,实际的二次开发可能涉及更复杂的图像处理算法或用户界面定制。 ENVI的二次开发结合VC和IDL,为遥感图像处理提供了强大的工具和灵活性,使得开发者可以根据需求定制自己的工作流程和功能。