ENVI波段运算与波普运算
分享到    浏览:74

ENVI波段运算与波普运算

图像可以看作是一个矩阵,矩阵中的任一元素对应 于图像中的一个点,而相应的值对应于该点的像素值,图像之间的运算就是矩阵运算。在ENVI中,有专门的图像运算工具—波段运算(BandMath)工具。波段运算可以完成诸如遥感定量反演中的模型运算、图像辐射定标、图像二二值化等处理。使用波谱运算( Spectral Math)工具可以对波谱曲线进行运算。

概述

Band Math是一个灵 活的图像处理工具,其中许多功能是无法在其他图像处理系统中获得的。由于每个用户都有特定的需求,利用此工具用户可以自己定义处理算法,应用到在ENVI中打开的某个波段或整幅图像中。用户还可以根据需要自定义简单或复杂的处理程序,例如,可以对图像进行简单加、减、乘、除运算,或使用IDL编写更复杂的处理运算功能。

波段运算的实质是对每个像素点对应的像素值进行数学运算。如下图所示为一个简单波段运算的示意图,运算表达式是3个变量相加,每一个变量对应于一幅图像数据,对3个图像数据求和并输出结果图像。表达式中的每个变量不仅可以对应某单一波段,也可以对应一个多波段的栅格文件。例如,在表达式bl +b2 +b3中,如果bl是一个多波段图像文件,b2b3为单一波段,则结果为bl所对应的所有波段分别与b2b3 进行求和。


Band Math工具

下面以求图像3个波段数据之和为例,介绍Band Math 工具的使用。在使用BandMath之前需要先打开图像数据。

(1)Toolbox工具箱中,双击Band Ratio——Band Math工具,打开Band Math对话框。

(2)在运算表达式输入框( Enter an expression)中输入表达式: bl +b2 +b3,单击Add to List按钮,将表达式添加到列表中。

提示:如果表达式语法有误,将不能被添加到列表中。

(3)单击OK按钮,打开Variables to Bands Pairings 下图对话框, 为运算表达式中各个变量赋予图像文件或者图像波段。


提示:如果要为一个变量选择多个波段或者图像的所有波段,单击MapVariableto

Input File 按钮。

(4)Variables to Bands Pairings 对话框中,在Variables used in expression 列表框中选择变量B1,Available Bands List 中为B1指定一个波段, 或使用Map Variable to InputFile按钮为变量b1指定一个图像文件。

提示:当第一个波段或文件被选中后,只有那些与其具有相同行列数的波段被显示在波段列表中。

(5)利用同样的方法分别为B2B3变量指定波段或文件

(6) 单击Choose按钮,选择文件名及路径保存结果,单击OK按钮,执行运算。

Band Math 对话框中,其他按钮的功能说明如下:

Add to List:可以将表达式添加到Previous Band Math Expression 列表中。这个列表

还同时显示未重启ENVI之前使用过的表达式。

Save:可以将列表中的运算表达式保存为外部文件(. exp)

Restore: 可以将外部运算表达式文件导入。

Clear: 可以清除列表中的所有运算表达式。

Delete:可以删除选择的运算表达式。

使用波段运算需要满足以下4个基本条件:

1)必须符合IDL波段运算表达式语法书写

所定义的处理算法或波段运算表达式必须满足IDL语法。不过,书写简单的波段运算表达式无须具备IDL的基本知识,但是如果所感兴趣的处理需要书写复杂的表达式,建议学习关于波段运算的IDL知识。

2)所有输入波段必须具有相同的空间大小.

由于波段运算表达式是根据pixel - for - pixel原理作用于波段的,因此输入波段的行列数和像元大小必须相同。对于有地理坐标的数据,如果覆盖区域一样, 但是由于像元大小不一样使得行列数不一致,在进行波段运算前可以使用Toolbox 工具箱Raster Manage-mentLayer Stacking功能对图像进行调整。

3)表达式中的所有变量都必须以Bn (bn)命名

表达式中代表输人波段的变量必须以字母b” 或“B”开头,后跟5位以内的数字。

例如,对3个波段进行求和运算的有效表达式可以用以下3种方式书写:

bl+b2+b3.

B1 +B11 +B111

B1+b2+B3

4)结果波段必须与输入波段的空间大小相同

波段运算表达式所生成的结果的行列数必须与输波段的相同。例如,如果输表达式为MAX (b1), 将不能生成正确结果,因为表达式输出值为个数,与输T波段的行列数不致。