ENVI扩展工具:Savitzky-Golay 滤波工具

IDL提供了SAVGOL函数,可以生成SG滤波核,然后便可以使用CONVOL进行滤波了。

为了方便广大ENVI用户,开发ENVI扩展工具,可以一键实现SG滤波。

工具采用了分块处理,对于输入数据量没有限制。

1 安装方法

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

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

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

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

  • ENVI 5.3 - C:\Program Files\Exelis\ENVI53\

  • ENVI 5.4 及以上 - C:\Program Files\Harris\ENVI5x\

重启 ENVI 即可使用。

2 工具使用

在工具箱中,打开/Extensions/Savitzky-Golay Filter

设置如下参数:

参数

描述

Input Raster

输入栅格数据

N Left

滤波核中心点左侧的点个数,默认为5

N Right

滤波核中心点右侧的点个数,默认为5

注:设置的N LeftN Right 值越大,则平滑效果越明显。

Order

设置导数阶数。设置为0,表示仅平滑;设置为1,表示一阶导数平滑结果;设置为2,表示二阶导数。以此类推。

注:Order 必须小于等于 Degree

Degree

设置平滑多项式的次数。通常设置为2~4。较低的次数能够产生平滑结果,但是有可能出现偏置(bias)。较高的次数能降低偏置,但有可能过拟合而导致结果噪声过多。

注:次数必须小于滤波器宽度,即Nleft + Nright + 1

Display Result

是否显示结果

Output Raster

输出文件路径

3 接口调用

本工具只需安装在ENVI路径中后,便可以通过接口调用其功能。

格式如下:

Task = ENVITask('ENVISavitzkyGolayFilterTask')
Task.NLeft = 5
Task.Nright = 5
Task.Order = 0
Task.Degree = 2
Task.Output_Raster_URI = 'D:\result.dat'
Task.Execute

 

posted @ 2022-06-20 13:41  ENVI-IDL技术殿堂  阅读(2196)  评论(0编辑  收藏  举报