4.10. 非線形フィルター...

4.10.1. 概観

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

非線形フィルターの使用例

元画像

非線形フィルターの使用例

非線形フィルター適用後


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

This is something of a swiss army knife filter. It has 3 distinct operating modes. In all of the modes each pixel in the image is examined and processed according to it and its surrounding pixels values. Rather than using 9 pixels in a 3×3 block, it uses a hexagonal block whose size can be set with the Radius option.

4.10.2. Activating the Filter

This filter is found in the main menu under FiltersEnhanceNL Filter….

The filter does not work if the active layer has an alpha channel. Then the menu entry is disabled.

4.10.3. オプション

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

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

プレビュー

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

フィルター

The Operating Mode is described below.

アルファ

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

半径

Controls the size of the effective sampling region around each pixel. The range of this value is 0.33-1.00, where 0.33 means just the pixel itself (and thus the filter will have no effect), and 1.00 means all pixels in the 3×3 grid are sampled.

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