如何在ENVI中使用掩膜提取&去除遥感影像中的异常值以及在Band Math中实现相同操作效果的方法

一、 掩膜的介绍

掩膜(Masking),主要用于选择或隐藏图像中的某些区域。掩膜的原理简单来说就是通过对图像进行条件筛选,通过设置范围(如0-1),在原图的基础上将不在这个范围的区域提取出来,生成掩膜图层。掩膜图层通常是一个二值图像,其中掩膜区域的像素值为 1(有效区域),而非掩膜区域的像素值为 0(无效区域)。将掩膜图像叠加在原始图像上导出后,就可以利用掩膜图像,将原始图像上不在范围内的值全部变为0,而其他值保持不变。

        可以认为,掩膜就是一张0,1二值膜,0值完全不透过,将该区域的值也变为0;1值完全透过,保留影像的原始值。

        掩膜可以应用于图像的任何类型数据(如反射率、温度、NDVI 等),其目的是对数据进行精细化处理,避免不感兴趣的区域干扰分析。

二、 掩膜的制作

2.1 在ENVI中导入图像后,找到Toolbox的搜索栏,输入Build Raster Mask:

2.2 选择需要进行处理的原始影像:

2.3 选择Options->Import Data Rang,仍然选择原始影像作为import

2.4 输入值的范围(这里的范围示例为0-1) 

 2.5 选择掩膜的保存路径

三、 掩膜处理 

生成的掩膜:(其中白色值为1,黑色值为0)

在原来的图像中存在许多异常负值,可以在Quick Stats中查看:

打开File->Save As->Save As (ENVI……):

选中需要导出的原始影像后添加掩膜: 

然后选择输出格式和储存路径将新图像导出即可,如果不想取到0,或者其他特定值,则在Data Ignore Value中输入0或者其他特定值。这个空为非必填项。

        现在当我们利用Quick Stats查看新图像的信息时,可以发现经过处理,影像的值变为0-1之间,且超出范围的部分被赋值为0:(这样就取出了(0,1]范围内的值)

四、Band Math中实现让图像在[0,1]区间取值

有关于Band Math的介绍,可以参考我的另一篇博客:

如何在ENVI和ENVI Classic中使用Band Math进行波段运算

ENVI中Band Math的位置位于Toolbox的Band Algebra->Band Math(也可以在Toolbox搜索框中直接搜索);

ENVI Classic中Band Math位于单栏Basic Tools->Band Math

在Band Math中输入公式:(将影像的DN值限制在[0,1],b1代表你要处理的波段)

(b1 lt 0)*0+((b1 ge 0)and (b1 lt 1))*b1 +(b1 ge 1)*1
  • 如果 b1 < 0,结果为 0
  • 如果 0 <= b1 < 1,结果为 b1(即保持b2的值)
  • 如果 b1 >= 1,结果为 1

五、 常见比较操作符:

  1. eq:等于(equal to)

    · 用于比较两个值是否相等。例如,b2 eq 0 表示 b2 是否等于 0。
  2. ne:不等于(not equal to)

    · 用于比较两个值是否不相等。例如,b2 ne 0 表示 b2 是否不等于 0。
  3. lt:小于(less than)

    · 比较两个值,左边的值是否小于右边的值。例如,b2 lt 0 表示 b2 是否小于 0。
  4. le:小于或等于(less than or equal to)

    · 比较两个值,左边的值是否小于或等于右边的值。例如,b2 le 0 表示 b2 是否小于或等于 0。
  5. gt:大于(greater than)

    · 比较两个值,左边的值是否大于右边的值。例如,b2 gt 0 表示 b2 是否大于 0。
  6. ge:大于或等于(greater than or equal to)

    · 比较两个值,左边的值是否大于或等于右边的值。例如,b2 ge 0 表示 b2 是否大于或等于 0。

【注:本文使用的软件为ENVI 5.6】 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值