3.6. 非線形フィルタ...
| 3. 強調フィルタ |

### 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) に通し、 必要なら「縁強調」フィルタに通してみてはどうでしょう。 最適化フィルタは始めから「`アルファ`」に大きな値を設定して一度に済ませるのではなく、 徐々に「`アルファ`」の設定値を減らしながら何度か通してやるともっと効果が高まります。 よくあることですが、 フィルタの効果が増すと画像の細部が損なわれてしまう相反関係になっています。 実験されることを推奨します。

3.5. ストライプ除去... |  | 3.7. 赤目除去...