当前位置: 代码迷 >> 综合 >> 转载-ENVI 5.1二次开发之——全新图像批处理模式(ENVITask)
  详细解决方案

转载-ENVI 5.1二次开发之——全新图像批处理模式(ENVITask)

热度:55   发布时间:2024-02-09 13:40:08.0

转载-ENVI 5.1二次开发之——全新图像批处理模式(ENVITask)

    • 声明
    • 正文

声明

本文内容转载自ENVI-IDL技术殿堂博客,点此进入文章链接

正文

之前做过ENVI二次开发的都知道,ENVI提供了一些列的DOIT函数,几乎包含了ENVI的所有图像处理功能,可以方便地被用户调用从而实现批处理,这些DOIT函数都是面向过程的。从ENVI 5.1版本开始,开始提供一种全新的图像处理API模式(ENVITask),即面向对象。本文就带大家来认识一下这些API。

从5.1版本开始,我们可以使用ENVITask和ENVITaskParameter两个对象组合使用进行各种各样的图像处理操作,ENVI 5.1目前只提供了四个ENVITask,如下表所示:

表:ENVI 5.1版本提供的ENVITask
这些Tasks与ENVI界面中对应工具支持的参数是一样的。所以想要快速调用这些Tasks,最好首先熟悉ENVI对应工具的使用与参数设定。

1.ENVITask与ENVITaskParameter对象
先来学习下这两个基础对象。简单来说,ENVITask就是用来新建Task的,而ENVITaskParameter可以返回当前Task的属性列表。

1.1 ENVITask
调用格式:

Result = ENVITask(‘TaskName’ [, ERROR=variable])

ENVI> Task = ENVITask(‘QUAC’)

ENVI> Task.DESCRIPTION

This task performs the QUick Atmospheric Correction workflow on an image

ENVI> Task.NAME

QUAC

ENVI> Task.IGNORE_VALIDATE

0

在这里插入图片描述
在这里插入图片描述

1.2 ENVITaskParameter
每一个ENVITask都有自己的参数设定。使用此方法可以返回查看每一个参数的所有属性,如下表所示。ENVITaskParameter的调用非常简单(查看上文示例代码),格式如下:

Result = ENVITask.Parameter(‘TaskProperty’ [, ERROR=variable])

其中,‘TaskProperty’为要查看的参数名,如上文的’input_raster’。
在这里插入图片描述

2.调用方法示例
以ENVIRPCOrthorectificationTask为例,介绍如何使用ENVITask进行图像处理。ENVIRPCOrthorectificationTask具有很多属性,属性列表如下所示。

在这里插入图片描述

下面的示例代码:

PRO Example_RPCOrthorectification; 启动ENVI5.1e = ENVI(); 选择输入文件ImageFile = DIALOG_PICKFILE(TITLE='Select an input image')Raster = e.OpenRaster(ImageFile); 选择DEM文件,这里使用ENVI5.1自带的DEM数据DEMFile = 'C:\Program Files\Exelis\ENVI51\data\GMTED2010.jp2'DEM = e.OpenRaster(DEMFile); 新建RPCOrthorectification ENVITaskTask = ENVITask('RPCOrthorectification'); 设置Task的输入输出参数Task.INPUT_RASTER = RasterTask.DEM_RASTER = DEMTask.DEM_IS_HEIGHT_ABOVE_ELLIPSOID = 0Task.OUTPUT_RASTER_URI = e.GetTemporaryFilename(); 执行TaskTask.Execute, Error=error; 将输出结果添加到Data Manager中DataColl = e.DATA DataColl.Add, Task.OUTPUT_RASTER; 显示结果View1 = e.GetView()Layer1 = View1.CreateLayer(Task.OUTPUT_RASTER)
END

在这里插入图片描述

部分内容没有转载,完整内容请查看原文链接!

  相关解决方案