ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-05-17 12:01:54  阅读:143  来源: 互联网

标签:运算 Band 波段 ENVI bandmath Math 按钮 表达式


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

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

图15.1 波段运算示意图

Band Math工具

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

  • 在Toolbox工具箱中,双击Band Ratio/Band Math工具,打开Band Math对话框(图15.2)。

注:ENVI5.4以上版本菜单为/Band Algebra/Band Math

图15.2 Band Math对话框

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

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

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

图15.3 Variables to Bands Pairings对话框

提示:如果要为一个变量选择多个波段或者图像所有波段,单击Map Variable to Input File按钮。

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

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

  • 同样的方法为B2和B3变量指定波段或文件(图15.3)。
  • 单击Choose按钮,选择文件名及路径保存结果,单击OK按钮执行运算。

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

  • 单击Add to List按钮,可以将表达式添加到Previous Band Math Expression列表中,这个列表还显示未重启ENVI之前使用过表达式。
  • 单击Save按钮可以将列表中的运算表达式保存为外部文件(.exp)。
  • 单击Restore按钮可以将外部运算表达式文件导入。
  • Clear按钮可以清除列表中的所有运算表达式。
  • Delete按钮可以删除选择的运算表达式。

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

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

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

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

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

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

表达式中代表输入波段的变量必须以字母“b”或“B”开头,后跟5位以内的数字。例如,对3个波段进行求和运算的有效表达式可以用以下3种方式书写:

  • b1 + b2 + b3
  • B1 + B11 + B111
  • B1 + b2 + B3
  1. 结果波段必须与输入波段的空间大小相同

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

摘自《ENVI遥感图像处理方法 第二版》高等教育出版社

标签:运算,Band,波段,ENVI,bandmath,Math,按钮,表达式
来源: https://www.cnblogs.com/enviidl/p/16280238.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有