2006 年 2 月 4 日 23 時 11 分

くっきりフィルタ


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


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


今日は、前回と反対の効果を持つくっきりフィルタだ。

ぼかしでは、ピクセル間のメリハリを弱くするために、
周辺のピクセルに近づける処理をした。
逆の発想で、周辺のピクセルとの差をより広くし、
ピクセル間のメリハリを強くすれば、
くっきり表示させることができる。

差を強調するにはどうすればいいか。
まずは、現画像から前回の方法でぼかし処理をした
画像を引き、ピクセル値の差分を求める。

元画像からこの差分を引いた結果、ぼけた画像ができた訳だ。
つまり、この差分はメリハリ部分を意味する情報だ。

では、逆にメリハリ情報を元画像に加算してあげれば、
今度はメリハリが強調されるのではないだろうか。
この方法は、アンシャープマスキングと呼ばれる。

ただ、上記の計算をそのまま行うと面倒なので、
元画像に対するカーネルの計算として考えてみよう。
まず、ぼかしは以下のカーネルで計算するとしよう。

1, 1, 1 ⇒ 1/16, 1/16, 1/16
1, 8, 1 ⇒ 1/16, 8/16, 1/16
1, 1, 1 ⇒ 1/16, 1/16, 1/16

後でカーネルどうしの計算をすることを考えて
重み合計が 1 になるように正規化したのが右である。
つまり、周辺ピクセルの影響力は 1/16、元ピクセルは 1/2 だ。

同様に元画像もカーネルで表現するとこうなる。

0, 0, 0
0, 1, 0
0, 0, 0

上記のカーネルは、周辺ピクセルを考慮せず、
元のピクセルをそのまま使うということだから、
元画像そのものである。

では、元画像からぼかしカーネルを引いてみよう。

-1/16, -1/16, -1/16
-1/16, 8/16, -1/16
-1/16, -1/16, -1/16

このカーネルを計算してできるのが、メリハリ情報となる。
差分情報であるため、値の合計は 0 となっている。

これをそのまま計算して画像とすると真っ黒になるため、
写真では、分かりやすくするために灰色を中心としている。
メリハリ部分が抽出されているのが分かるだろうか。

では、最終的にこのメリハリ情報を元画像に足してみよう。

-1/16, -1/16, -1/16
-1/16, 24/16, -1/16
-1/16, -1/16, -1/16

こうなった。重みを 16 にすると以下のようになる。

-1, -1, -1
-1, 24, -1
-1, -1, -1

つまり、このカーネルを元画像に適用すると、
上記のような手順を踏まなくとも、
直接くっきり処理を行うことができることとなる。

写真を見てほしい。右端がくっきり処理後の画像である。
元画像と比較して輪郭がはっきりしているのが分かるだろう。
しかし、同時にノイズも強調されてしまっているのだ。



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