フィルターの仕組み

[フィルター (Filter)] ツールを使用すると、エラー データを除去したり、他の方法ではデータに表示されないフィーチャを強調したりできます。 フィルターは基本的に、入力ラスターをスキャンする 3 x 3 セル近傍ウィンドウを移動、重複させることによって出力値を作成します。 フィルターが各入力セルを通過すると、そのセルとその 8 つの隣接セルの値が出力値の計算に使用されます。

このツールでは、ロウ パスとハイ パスの 2 種類のフィルターを使用できます。

フィルター タイプ

[ロウ パス] フィルター タイプは、入力ラスターに対してロウ パス (平均) フィルターを使用して、基本的にデータをスムージング処理します。 [ハイ パス] フィルター タイプは、ハイ パス フィルターを使用して、ラスターで表されるフィーチャ間のエッジと境界を強調します。

ロウ パス フィルター

ロウ パス フィルターは、局所的な変動を減少してノイズを除去することにより、データをスムーズにします。 ロウ パス フィルターは、各 3 x 3 近傍の平均値を計算します。 基本的に、[平均] 統計オプションを指定した [フォーカル統計 (Focal Statistics)] ツールと同じです。 効果としては、各近傍の大きい値と小さい値が平均化され、データ内の極端な値が減少します。

例 1

以下は、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 セル ラスターで、[ロウ パス] オプションを指定した [フィルター (Filter)] によって生成されたラスターです。

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

次の例では、入力ラスターに、データ収集エラーが原因で発生した異常なデータ ポイントがあります。 [ロウ パス] オプションの平均化特性により、異常なデータ ポイントがスムージング処理されました。

ロウ オプションのフィルター
ロウ オプションが設定されたフィルター例

ハイ パス フィルター

ハイ パス フィルターは、セル値と近傍との比較差を強調します。 複数のフィーチャの境界 (水域と森林との間など) を強調する効果があり、オブジェクト間のエッジをシャープにします。 このフィルターは、一般にエッジ強調フィルターと呼ばれます。

[ハイ パス] オプションにより、9 つの入力 Z 値は、頻度の低い変動を除去して異なる領域間の境界を強調するような方法で重み付けされます。

このオプションの 3 x 3 フィルターは次のとおりです。

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

カーネル内の値は正規化されているので、合計が 0 になります。

ハイ パス フィルターは、基本的に、[合計値] 統計オプションを指定し、特定の重み付けされたカーネルを使用した [フォーカル統計 (Focal Statistics)] ツールと同じです。

出力された Z 値はサーフェスの滑らかさを示しますが、元の Z 値とは関係ありません。 Z 値はゼロ付近に分布し、エッジの上側では正の値が、下側では負の値になります。 Z 値がゼロに近い領域は、傾きがほぼ一定の領域です。 z-min および z-max に近い値を持つ領域は、傾きが急速に変化しています。

例 1

以下は、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.