ENVI中处理图像遇到NaN时的处理方法
当图像中包含 NaN 等无效值时,在 ENVI 中进行某些处理可能会遇到类似下方的提示:
此时,可以有几种方法解决这个问题。
方法1:选择输入文件时掩膜NaN
以 PCA 变化为例,在工具箱双击 /Transform/PCA Rotation/Forward PCA Rotation New Statistics and Rotate,在弹出的对话框中,选中待处理图像,在 Mask Options 下拉列表中,如果 Mask NaNs [All Bands] 和 Mask NaNs [Any Band] 两个菜单可用,说明图像中包含NaN像元。
根据需要进行掩膜,一般建议选择 Mask NaNs [Any Band],表示任意一个波段 DN 值为 NaN 时便掩膜掉这个像元。然后点击 OK,将自动生成掩膜文件并对输入文件进行掩膜,最后弹出 PCA 面板,设置参数便可正常进行处理了。
这种方法不需要预先对输入图像进行掩膜处理。
方法2:使用 Apply Mask 工具
可以使用 Apply Mask 工具对输入图像进行掩膜处理,将 NaN 掩膜为 0 值或其他值。
ENVI 5.4.1 及以上版本移除了这个工具,大家可以在 ENVI App Store 中安装如下工具,重启 ENVI 即可使用。
操作方法如下:
- 在工具箱启动 Apply Mask 工具:
- ENVI 5.4.1以下版本:Toolbox/anagement/Masking/Apply Mask
- ENVI 5.4.1及以上版本:Toolbox/ENVI Classic/Apply Mask
- 注:ENVI 5.4.1及以上版本需要安装扩展工具
- 在弹出的 Apply Mask Input File 面板中,在 Mask Options 下拉列表中,如果 Mask NaNs [All Bands] 和 Mask NaNs [Any Band] 两个菜单可用,说明图像中包含 NaN 像元。根据需要进行掩膜,一般建议选择 Mask NaNs [Any Band],表示任意一个波段DN值为NaN时即掩膜掉这个像元。然后点击 OK 继续。
- 在弹出的面板中设置 Mask Value,即背景值。如图中所示,将会把值为 NaN 的像元掩膜为 0 值。然后再对掩膜后图像进行处理即可。
方法3:利用波段运算工具
请查看博文“ENVI扩展工具:利用波段运算修改NaN方法总结”:https://www.cnblogs.com/enviidl/p/16267337.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界