采用Savitzky-Golay方法对无人机高光谱数据进行滤波平滑

采用Savitzky-Golay方法对无人机高光谱数据进行滤波平滑

无人机高光谱数据的波段多达上百个,在超过百米的高空对地物进行图谱合一的成像。有时候由于仪器信噪比未达最佳工作状态,或者暗电流等干扰因素的综合作用,不同波段的光谱反射率存在一定的噪声,导致相邻波段的反射率呈现锯齿状特征。为了提高信息提取精度,需要进行滤波平滑操作。

(1)Savitzky-Golay滤波的原理

1964年,Savitzky和Golay提出了一种数据流平滑除噪滤波方法,发表于Analytical Chemistry 杂志。该滤波方法是一种在时域内基于局域多项式最小二乘法拟合的滤波方法,最大的特点在于在滤除噪声的同时可以保持信号的形状和宽度不变。

算法思路是通过移动平滑,实现噪声的抑制。

(2)安装ENVI_Savitzky_Golay_Filter插件

在这个地方,下载插件,插件支持5.3及以上版本。
链接:pan.baidu.com/s/1P9fESB
提取码:ubgu
将custom_code和extensions这两个文件夹拷贝到ENVI安装路径:
ENVI5.3 — C:\Program Files\Exelis\ENVI53\
ENVI5.4 —C:\Program Files\Harris\ENVI54\

打开ENVI软件,在Toolbox地方,就能看到这个插件。

(3)对高光谱数据进行平滑滤波

观察光谱数据,光谱曲线,尤其是近红外部分,存在明显的光谱抖动,建议进行一定程度的滤波。

打开工具箱→Extensions→Savitzky-Golay Filter。

· Input Raster:输入栅格数据。
· N Left:滤波核中心点左侧的点个数,默认为5。
· N Right:滤波核中心点右侧的点个数,默认为5。N Left和N Right 值越大,则平滑效果越明显。
· Order:设置导数阶数。设置为0,表示仅平滑;设置为1,表示一阶导数平滑结果;设置为2,表示二阶导数。以此类推(Order必须小于等于Degree)。
· Degree:设置平滑多项式的次数。通常设置为2~4。较低的次数能够产生平滑结果,但是有可能出现偏置。较高的次数能降低偏置,但有可能过拟合而导致结果噪声过多。次数必须小于滤波器宽度,即Nleft+Nright+1。
· Display Result:是否显示结果。
· Output Raster:输出文件路径。(此处引自ENVI-IDL中国官方微博)
(4)平滑滤波效果对比试验

综上,没有绝对的最优参数设置,需要结合具体数据具体分析。本例中通过对比,选择默认的参数进行平滑,效果相对较好,计算效率也较高。

发布于 2020-11-18 11:46