ENVIbandmath波段运算.docx

上传人:b****8 文档编号:23556465 上传时间:2023-05-18 格式:DOCX 页数:6 大小:68.01KB
下载 相关 举报
ENVIbandmath波段运算.docx_第1页
第1页 / 共6页
ENVIbandmath波段运算.docx_第2页
第2页 / 共6页
ENVIbandmath波段运算.docx_第3页
第3页 / 共6页
ENVIbandmath波段运算.docx_第4页
第4页 / 共6页
ENVIbandmath波段运算.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

ENVIbandmath波段运算.docx

《ENVIbandmath波段运算.docx》由会员分享,可在线阅读,更多相关《ENVIbandmath波段运算.docx(6页珍藏版)》请在冰豆网上搜索。

ENVIbandmath波段运算.docx

ENVIbandmath波段运算

ENVI--band-math-波段运算

ENVI下实用的波段运算(bandmath)工具

ENVIBandMath是一个灵活的图像处理工具,其中许多功能是无法在任何其它的图像处理系统中获得的。

由于每个用户都有独特的需求,利用此工具用户自己定义处理算法,应用到在ENVI打开的波段或整个图像中,用户可以根据需要自定义简单或复杂的处理程序。

例如:

可以对图像进行简单加、减、乘、除运算,或使用IDL编写更复杂的处理运算功能。

波段运算实质是对每个像素点对应的像素值进行数学运算。

如图15.1为一个简单波段运算的示意图,运算表达式是三个变量相加,每一个变量对应于一个图像数据,对这三个图像数据求和并输出结果图像。

表达式中的每个变量不仅可以对应于单一波段,也可以是一个多波段的栅格文件。

例如:

在表达式b1+b2+b3中,如果b1是一个多波段图像文件,b2、b3为单一波段,则结果为b1所对应的文件的所有波段分别和b2、b3进行求和。

图15.1波段运算示意图

BandMath工具

下面以求三个图像数据的和为例介绍BandMath工具的使用。

在使用BandMath之前需要将图像数据打开。

(1)在ENVI主菜单中,选择BasicTools→BandMath,打开BandMath对话框(图15.2)。

(2)运算表达式输入框(Enteranexpression):

b1+b2+b3

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

(4)在VariablestoBandsPairings对话框中,Variablesusedinexpression列表框中选择变量b1,单击MapvariabletoInputfile按钮,为变量b1指定一个多波段图像文件(注:

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

)。

(5)Variablesusedinexpression列表框中选择一个变量b2,在AvailableBandsList选择Band4波段,同样方法为b3选择Band5波段。

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

到PreviousBandMathExpression列表中,这个列表还显示未重启ENVI之前使用过表达式。

单击Save按钮可以将列表中的运算表达式保存为外部文件(.exp)。

单击Restore按钮可以将外部运算表达式文件导入。

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

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

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

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

所定义的处理算法或波段运算表达式必须满足IDL语法。

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

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

由于波段运算表达式是根据pixel-for-pixel原理作用于波段的,因此输入波段在行列数和像元大小必须相同。

对于有地理坐标的数据,如果覆盖区域一样,但是由于像元大小不一样使得行列数不一致,在进行波段运算前,可以使用BasicTools→LayerStacking功能对图像进行调整。

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

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

例如:

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

b1+b2+b3

B1+B11+B111

B1+b2+B3

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

波段运算表达式所生成的结果必须在行列数方面与输入波段相同。

摘自《ENVI遥感图像处理方法》科学出版社第三次印刷

波段运算(bandmath)工具中常用的函数

BandMath工具能够方便的执行图像中各个波段的加、减、乘、除、三角函数、指数、对数等数学函数计算,也可以使用IDL编写的函数。

BandMath工具使用函数都是基于IDL的数据组运算符。

IDL的数组运算符使用方便且功能强大。

它们可以对图像中的每一个像元进行单独检验和处理,而且避免了FOR循环的使用(不允许在波段运算中使用)。

数组运算符包含关系运算符(LT、LE、EQ、NE、GE、GT)、Boolean运算符(AND、OR、NOT、XOR)和最小值、最大值运算符(<、>)。

这些特殊的运算符对图像中的每个像元同时进行处理,并将结果返还到与输入图像具有相同维数的图像中。

例如:

要找出所有负值像元并用值-999代替它们,可以使用如下的波段运算表达式:

(b1lt0)*(-999)+(b1ge0)*b1

关系运算符对真值(关系成立)返回值为1,对假值(关系不成立)返回值为0。

系统读取表达式(b1lt0)部分后将返还一个与b1维数相同的数组,其中b1值为负的区域返回值为1;其他部分返回值为0,因此在乘以替换值-999时,相当于只对那些满足条件的像元有影响。

第二个关系运算符(b1ge0)是对第一个的补充——找出那些值为正或0的像元,乘以它们的初始值,然后再加入替换值后的数组中。

这个用法可以扩展到两个图像中,比如图像1中值大于220(有云部分)用图像2中对应的像素值代替,其余保留图像1中的值,表达式就可以写成:

(b1lt220)*b2+(b1le220)*b1

类似的使用数组运算符的表达式为波段运算提供了很强的灵活性。

下表中描述了BandMath工具中常用的IDL数组操作函数,详细介绍,请参阅《IDLReferenceGuide》。

种类

操作函数

基本运算

加(+)、减(-)、乘(*)、除(/)

三角函数

正弦sin(x)、余弦cos(x)、正切tan(x)

反正弦asin(x)、反余弦acos(x)、反正切atan(x)

双曲正弦sinh(x)、双曲余弦cosh(x)、双曲正切tanh(x)

关系和逻辑运算符

小于(LT)、小于等于(LE)、等于(EQ)、不等于(NE)、大于等于(GE)、大于(GT)

AND、OR、NOT、XOR

最小值运算符(<)和最大值运算符(>)

其他数学函数

指数(^)和自然指数(exp(x))

自然对数(alog(x))

以10为底的对数(alog10(x))

整型取整——round(x)、ceil(x)、和floor(x)

平方根(sqrt(x))

绝对值(abs(x))

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1