2006 年 2 月 2 日 23 時 33 分

ぼかしフィルタ


このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。


[写真] [写真] [写真]


今日からフィルタ処理をやろう。
フィルタ処理は、ピクセルの値を計算するために、
対象となるピクセルの周囲の値を利用して計算する。

今日やるのはぼかし処理だ。
ピクセル間のメリハリを弱めれば、ぼかしがかかる。
フィルタの考え方に当てはめると、
ピクセルを周辺の値に近づければよいのだ。
例えば、周辺のピクセルとの平均を取るのも方法である。

フィルタ処理には、「カーネル」という言葉が出てくる。
カーネルは、対象の範囲と重みを示す数値の並びであり、
カーネルを決めることでフィルタの計算方法を示す事ができる。

では、ぼかしフィルタのカーネルを具体的に決めてみよう。
今回は、周辺にある 8 ピクセルを使って計算するため、
ぼかしフィルタは、縦横それぞれ 3 つずつ数値を並べる。
例えば、以下のような感じだ。

1, 1, 1
1, 8, 1
1, 1, 1

上の数字の並びを、画像上に当てはめて考える。
数字の並びの中心を、計算したいピクセルに合わせて重ねる。

この場合、並びの中心にある 8 は
自分自身のピクセルの重み(重要度)であり、
周辺の 1 は、自分の周りにあるピクセルに対する重みだ。

周辺を含めてそのまま平均化すると強力すぎるので、
ピクセルの元の値の重み(重要度)を高くしてみた。

計算は、重みの数値の加重平均を行う。
例えば、以下のようなピクセル値の画像があったとする。
この中心にある 3 のピクセルに上記のフィルタを適用すると、

1, 2, 6
2, 3, 7
6, 7, 9

1 * 1 + 2 * 1 + 6 * 1 +
2 * 1 + 3 * 8 + 7 * 1 +
6 * 1 + 7 * 1 + 9 * 1 = 64
64 / (1 + 1 + 1 + 1 + 8 + 1 + 1 + 1 + 1) = 4 となる。

重みによって、元のピクセル値がある程度尊重されている。
もし全ての重みが一緒ならば、4.7 となり、
周辺の 6 や 7 の影響力が強くなることになる。

写真は、それぞれ以下のフィルタで処理をしたものだ。
中央が 1 の方がより強い効果が出ている。
分かりにくいかもしれないが、画像を開いて見比べてほしい。

1, 1, 1   1, 1, 1
1, 8, 1   1, 1, 1
1, 1, 1   1, 1, 1



Copyright (c) 1994-2007 Project Loafer. All rights reserved.