
61
3.3 画像のフィルタリング(2 次元フィルタ)
フィルタリング
上記のような操作をフィルタリングと呼びます。理由は、物理的な電気回路において、このタイプの
操作の多くが、特定の電流を通しそれ以外の電流をブロックするハードウェアで実装されるものであ
り、そのようなハードウェアの部品のことをフィルタと呼ぶからです。例えば、電流から高周波成分
の電圧ゆらぎを除去する一般的なフィルタは、ローパスフィルタと言います。
3.3
画像のフィルタリング(
2
次元フィルタ)
これまで
1
次元のフィルタリングを見てきたので、これから行う、画像などの
2
次元信号への
拡張は、理解しやすいでしょう。以下に、硬貨の画像の輪郭を見つける
2
次元の差分フィルタを
用いた例を示します。
coins = coins.astype(float) / 255 # prevents overflow errors
オーバーフローによるエラーを防ぐ。
diff2d = np.array([[0, 1, 0], [1, 0, -1], [0, -1, 0]])
coins_edges = ndi.convolve(coins, diff2d)
io.imshow(coins_edges);
■
原理的には
1
次元フィルタと同じです。画像の各点にフィルタをかけ、フィルタの値と画像の値
の内積を取り、結果を出力画像の同じ位置に置きます。そして、
1
次元の差分フィルタと同様に、
変化がない部分にフィルタがかかると、内積がゼロとなって打ち消されますが、画像の明度が変化 ...