3.6. 非線形フィルタ...

3.6.1. 概観

図16.24 非線形フィルタの使用例

非線形フィルタの使用例

元画像

非線形フィルタの使用例

非線形フィルタ適用後


非線形フィルタ... はUnix系の pnmnlfilt から派生したプログラムであり、 平滑化とノイズ除去とシャープ化強調の各機能を合わせもっています。 選択範囲ではなくレイヤー全体で作用します。

このフィルタはスイス軍万能ナイフのような特性を持っています。 特徴的な3つの操作モードがあります。 いずれのモードも画像の画素をひとつひとつ検分しそことその周りの画素の値を基に処理を施します。 周りの画素は 3×3 で 9 ピクセルの範囲に限らず、 半径オプションで大きさが設定できる六角形の範囲をとります。

3.6.2. フィルタの呼び出し方

画像ウィンドウのメニューより フィルタ強調非線形フィルタ...

レイヤーにアルファチャンネルがあるとこのフィルタは作動できません。 このときはメニュー項目が灰色無効となり使用できなくなっています。

3.6.3. オプション

図16.25 非線形フィルタのオプション

「非線形フィルタ」のオプション

プレビュー

プレビュー オプションを有効にしておれば画像に実際にフィルタをかける前からダイアログ上で調節したとおりに即座に効果のようすが見て分かるようになっています。

フィルタ

操作モード については後述します。

アルファ

フィルタの適用量を調節できます。 指定できる範囲は 0.00 から 1.00 です。 この値の具体的な意味は選択される操作モードによって変化します。 ちなみにこのパラメータは pnmnlfilt プログラムで使われる alpha と関係があるものの同一ではありません。

半径

画素ごとに調べられるその周りの範囲の大きさを調節できます。 この値のとりうる範囲は 0.33 から 1.00 であり、 0.33 はそのピクセル自身を表し (つまりその場合このフィルタは何の効果も生みません)、 1.00 は 3×3 の範囲のすべての画素から抽出することを表します。

3.6.4. 操作モード

このフィルタはいろいろな互いに異なる機能をもっています。

透明度を用いた平均

中央の画素の値が六角形内の7個の画素の値の平均値で置き換えられることになっていますが、 7つの値はその大きさ順に並び換えられ、 その先頭と最後のアルファの部分が平均から除外されます。 つまりこれはアルファに 0.0 を設定すれば半径がフィルタ強度を司る (平均化とか平滑化のような) 標準的コンボリューションの出力と同じことになります。 このフィルタをちょっとだけかけたいときはアルファ = 0.0、 半径 = 0.55 の設定から始めましょう。 派手にかけたいときはアルファ = 0.0、 半径 = 1.0 と設定してみましょう。

アルファの設定値を 1.0 としたときは六角形内の周辺7個の画素の値の中間値が中央の画素の値に置き換わります。 このようなフィルタなら画像の突出した汚れや1画素だけのノイズを、 薄く撒き散らしたりぼかしてにじませることなく取り去るのに適します。 慎重に半径パラメータを扱えばフィルタを精密に調節できます。

中間的な値をアルファに設定したときは平滑化効果と突出ノイズの除去効果の折衷的なはたらきをします。 このようなフィルタをちょっとだけかけたいときはアルファ = 0.8、 半径 = 0.6 の設定から始めましょう。 派手にかけたいときはアルファ = 1.0、 半径 = 1.0 と設定してみましょう。

最適化

このような型のフィルタは画像に適応した平滑フィルタの効果を与えます。 画素をひとつずつ辿りその周囲の六角形の範囲内の値を計算してこれに反比例する値を平滑化する量とします。 これはばらつきが小さければ画像にノイズがあるものと考え、 ばらつきが大きければ画像のあるべき様相が反映したものと考えるやり方です。 いつも通り半径パラメータが効果を調節するのに使えますが、 ばらつきの計算が意味のある値になるよう 0.8 から 1.0 の間の値にとどめておいた方がよさそうです。 アルファパラメータはノイズのしきい値を設定し、 この値を下回ると平滑化が起こるようになります。 つまりアルファに小さな値を設定するとフィルタの効果はかすかなものとなり、 大きな値を設定すると画像全部が平滑化されそうになります。 まずはアルファ = 0.2、 半径 = 1.0 ぐらいの値からはじめ、 徐々にアルファパラメータを増減して望みの効果が得られるのを探ってみるとよいでしょう。 この型のフィルタはビットマップやカラー画像のディザリングノイズをとり除くのに最適です。

縁強調

これは平滑化フィルタとは逆の型です。 画像状の物体の縁を強調します。 アルファパラメータが縁強調の量をちょっとだけ (0.1) から派手 (0.9) までの範囲で調節します。 半径パラメータはいつも通り効果調整の役割を担いますが、 有効な値は 0.5 から 0.9 までです。 まずはアルファ = 0.3、 半径 = 0.8 の値から始めてみましょう。

組み合わせ活用

操作モードは画像に望ましい結果が出るまでいろいろ変えて重ねて利用できます。 例えばディザリングがかかったモノクロ画像をグレースケール画像に変えたければ、 平滑化フィルタにして1回か2回通し、 最適化フィルタをかけたうえで、 ちょっとだけ縁を強調するのです。 ちなみに縁強調は非線形フィルタの他の機能 (透明度を用いた平均最適化) を実行したあとだけしか効果がないようです。 というのも縁強調は平滑化の対極にある機能だからです。

色の量子化ノイズ (.gif ファイルを24ビットRGB画像に変換した場合に発生します) を低減させるには最適化フィルタ (アルファ = 0.2、 半径= 1.0) に通し、 折衷型フィルタ (アルファ = 1.0、 半径 = 0.55) に通し、 必要なら縁強調フィルタに通してみてはどうでしょう。 最適化フィルタは始めからアルファに大きな値を設定して一度に済ませるのではなく、 徐々にアルファの設定値を減らしながら何度か通してやるともっと効果が高まります。 よくあることですが、 フィルタの効果が増すと画像の細部が損なわれてしまう相反関係になっています。 実験されることを推奨します。