ENVI扩展工具:图像归一化

很多时候我们需要对栅格图像进行归一化操作,使所有DN值范围统一到0~1 之间。

归一化的公式为

Result=(DN-DNmin)/(DNmax-DNmin)

式中:

  • Result为归一化之后的值
  • DN为原始像元值
  • DNmin、DNmax分别为波段的最小、最大值

ENVI中操作步骤如下:

  1. 首先用/Statistics/Compute Statistics工具统计直方图(可以加入掩膜),获取最小值和最大值。一般情况下会取一个置信区间,比如2%或5%。
  2. 然后利用Band Math工具进行归一化,公式如下:

(b1 lt min)*0+(b1 ge min and b1 le max)*(b1-min)/(max-min)+(b1 gt max)*1

操作较为复杂,而且当归一化多波段数据时,只能逐个波段处理。

所以,写了扩展工具。但是,坏消息是只支持ENVI 5.5及以上版本,因为用了新接口。

工具安装

方法1:使用 ENVI App Store 进行 ENVI 扩展工具的安装与管理。

App Store 下载地址:envi.geoscene.cn/appstore

方法2:手动下载 https://envi.geoscene.cn/appstore/raseomiion

下载 zip 压缩包并解压,将得到的 extensions 和 custom_code 文件夹拷贝到如下 ENVI 安装路径,覆盖同名文件夹即可:

  • ENVI5.5 —C:\Program Files\Harris\ENVI55\

重启ENVI即可使用。

注:本工具支持ENVI 5.5及更高版本

工具使用

在工具箱启动/Extensions/Raster Normalization

参数介绍:

  • Input Raster:输入栅格图像,支持多波段,分波段统计最小/大值进行归一化。
  • Input Mask Vector:输入统计最小/大值的掩膜矢量。
  • Input Mask Raster:输入统计最小/大值的掩膜栅格。
  • 以上2个掩膜文件二选一,或不设置。
  • Percent(%):置信区间百分比,默认2%
  • Output Data Type:输出数据类型。可选Float(0~1)、Byte(0~255)
  • Display Result:是否加载显示结果
  • Output Raster:输出文件

接口调用

工具安装完成后,可在IDL中调用接口,或使用ENVI Modeler,轻松实现批处理。

e=envi()
task=ENVITask('RasterNormalizationDu')
task.input_raster=input_raster
task.input_mask_vector=mask_vector
task.percent=5.0
task.output_data_type="Float (0.0~1.0)"
task.output_raster_uri=outfile
task.execute
;添加Data Manager并自动显示
e.data.add, task.output_raster
view=e.GetView()
layer=view.Createlayer(task.output_raster)

其他关键字:

  • display_result:是否显示结果,输入0或1
  • input_mask_raster:掩膜图像文件,输入ENVIRaster
posted @   ENVI-IDL技术殿堂  阅读(4223)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示