滤波器的工作原理

需要 Spatial Analyst 许可。

滤波器工具可用于消除伪数据或增强数据中不明显的要素。 在本质上来讲,滤波器通过移动的重叠 3x3 像元邻域窗口扫描输入栅格来创建输出值。 当滤波器经过每个输入像元时,将使用该像元及其 8 个直接相邻像元的值来计算输出值

该工具中提供了两种类型的滤波器:低通和高通。

滤波器类型

低通滤波器类型对输入栅格采用低通或平均滤波器,并从根本上平滑数据。 高通滤波器类型使用高通滤波器来增强栅格中表示的要素之间的边缘和边界。

低通滤波器

低通滤波器可通过减少局部变化和移除噪声来平滑数据。 它计算每个 3 x 3 邻域的平均值。 它本质上等同于具有平均数统计选项的焦点统计工具。 其效果就是对每个邻域内的高数值和低数值进行平均处理,以减少数据中的极值。

示例 1

以下是一个处理像元(值为 8 的中心像元)的输入邻域值示例。

7 5 2 4 8 3 3 1 5

处理像元(值为 8 的中心输入像元)的计算是求输入像元的平均值。 即邻域包含的输入中所有值的总和除以邻域中的像元数 (3 x 3 = 9)。

Value = ((7 + 5 + 2) + (4 + 8 + 3) + (3 + 1 + 5)) / 9 = 38 / 9 = 4.222

处理像元位置的输出值为 4.22。

由于平均值是根据所有输入值计算的,因此列表中的最大值(即处理像元的值 8)将被平均掉。

示例 2

此示例显示了在小型 5 x 5 像元栅格上使用低通选项的滤波器生成的结果栅格。

为了说明如何处理 NoData 像元,选中在计算中忽略 NoData 参数(在 Python 中设置为 DATA)然后取消选中(在 Python 中设置为 NODATA)后,输出值如下:

  • 输入像元值:
    2.000 3.000 4.000 5.000 6.000 2.000 3.000 4.000 NoData 6.000 2.000 3.000 4.000 5.000 6.000 2.000 30.000 4.000 5.000 NoData 1.000 2.000 2.000 3.000 NoData
  • 选中在计算中忽略 NoData 参数的输出像元值(滤波器窗口中的 NoData 像元将在计算中被忽略):
    2.500 3.000 3.800 5.000 5.667 2.500 3.000 3.875 5.000 5.600 7.000 6.000 7.250 4.857 5.500 6.667 5.556 6.444 4.143 4.750 8.750 6.833 7.667 3.500 4.000
  • 未选中在计算中忽略 NoData 选项集的输出像元值(如果滤波器窗口中的任何像元为 NoData,则输出将为 NoData):
    NoData NoData NoData NoData NoData NoData 3.000 NoData NoData NoData NoData 6.000 NoData NoData NoData NoData 5.556 6.444 NoData NoData NoData NoData NoData NoData NoData

示例 3

在以下示例中,输入栅格具有由数据收集错误导致的异常数据点。 低通选项的平均特性平滑了异常数据点。

使用低选项的滤波器
具有 LOW 选项的滤波器输出示例

高通滤波器

高通滤波器着重强调像元值与其相邻像元之间的相对差异。 它具有突出要素间边界(例如,水体与森林交汇处)的效果,从而锐化对象之间的边缘。 它通常被称为边缘增强滤波器。

使用高通选项,九个输入 z 值的加权方式可以消除低频变化并突出显示不同区域之间的边界。

此选项的 3 x 3 过滤器是:

-0.7 -1.0 -0.7 -1.0 6.8 -1.0 -0.7 -1.0 -0.7

请注意,核中的值的总和为 0,因为它们是归一化的。

高通滤波器本质上等同于使用具有总和统计选项和特定加权核的焦点统计工具。

输出 z 值表示表面的平滑度,但它们与原始 z 值无关。 Z 值分布在零附近,边缘上方为正值,下方为负值。 z 值接近于零的区域是斜率几乎恒定的区域。 z-min 和 z-max 附近值的区域是斜率快速变化的区域。

示例 1

以下是一个处理像元(值为 8 的中心像元)计算的简单示例:

7 5 2 4 8 3 3 1 5

处理像元(值为 8 的中心像元)的计算如下:

Value = ((7*-0.7) + (5*-1.0) + (2*-0.7) + (4*-1.0) + (8*6.8) + (3*-1.0) + (3*-0.7) + (1*-1.0) + (5*-0.7)) = ((-4.9 + -5.0 + -1.4) + (-4.0 + 54.4 + -3.0) + (-2.1 + -1.0 + -3.5) = -11.3 + 47.4 + -6.6 = 29.5

处理像元的输出值为 29.5。

通过为其邻域赋予负权重,滤波器通过拉出对象之间的差异或边界来强调局部细节。

示例 2

在以下示例中,输入栅格沿着值从 5.0 变为 9.0 的区域具有凸出边缘。 选项的边缘增强特性已检测到边缘。

使用高选项的滤波器

待处理的 NoData 像元

在计算中忽略 NoData 选项可控制邻域窗口内 NoData 像元的处理方式。 选中此选项时(Python 中的 DATA 选项),输出像元值的计算将会忽略邻域中的所有 NoData 像元。 取消选中此选项时(NODATA 选项),如果邻域中存在任何 NoData 像元,则输出像元将为 NoData。

如果待处理的像元本身是 NoData,则在选中在计算中忽略 NoData 选项后,将根据邻域中有效的其他像元来计算像元的输出值。 当然,如果邻域中的所有该像元均为 NoData,则无论如何设置此参数,输出都将为 NoData。

参考资料

Gonzalez, R. C., and P. Wintz. 1977. Digital Image Processing. Massachusetts: Addison–Wesley.

Hord, R. M. 1982. Digital Image Processing of Remotely Sensed Data. New York: Academic.

Moik, J. G. 1980. Digital Processing of Remotely Sensed Images. New York: Academic.

Richards, J. A. 1986. Remote Sensing Digital Image Analysis: An Introduction. Berlin: Springer-Verlag.

Rosenfeld, A. 1978. Image Processing and Recognition, Technical Report 664. University of Maryland Computer Vision Laboratory.

相关主题