ここは数学者の独壇場です。 フィルタはほとんどがコンボリューション行列を使用しています。
フィルタと想像力があればどんなフィルタも創れます。コンボリューション (二次元畳み込み) 行列とは何なのでしょう。 数学の小道具をちょっとばかり知っていただければ大まかな理解が可能です。 コンボリューションとは行列式を「カーネル」と呼ばれる別の行列式で処理することです。
コンボリューション行列フィルタは「像」を処理する最初の行列を使います。 像とは画素を縦横の座標に並べた2次元の集合です。 ほしい効果によって利用されるカーネルは異なります。
GIMPでは 5×5 行列か 3×3 行列が使われます。 ここでの説明は専ら 3×3 行列のみ扱いますが、 これは最もよく用いられているうえお望みの効果をこなすのに充分なものだからです。 ダイアログでは 5×5 行列の記入欄がありますが、 外縁の枠をすべて 0 に設定すれば 3×3 行列だと自動的に見做されます。
画像でフィルタはそのあらゆる画素についてつぎつぎと検討します。 そのときの画素を「端緒画素」と呼び毎回この画素とその周りの8つの画素の値に対しカーネルの相応する値との積をそれぞれ得ます。 それらの値の合計が端緒画素の最終的な値となります。
つぎに簡単な例をご紹介します。
この図の左にあるのが画像の行列です。 各画素の値が書き込まれています。 端緒画素は赤枠で囲ってあります。 カーネルによる処理が及ぶのは緑の枠で囲ってある画素です。 右にあるのがコンボリューションによる結果です。
この計算で何が起きているかご説明いたしましょう。 フィルタはカーネルの作用領域のすべての画素を左から右へ上から下へ順番に読みとります。 カーネルに相応する部分の値とそれぞれ掛け合わされそれらの和を求めます。 端緒画素は (40×0)+(42×1)+(46×0) + (46×0)+(50×0)+(55×0) + (52×0)+(56×0)+(58×0) = 42 となります。 (このフィルタは元画像に直接作用せずその複製に結果を記録します。) 画像のほうでは端緒画素が1ピクセル下に移動しました。
これは 5×5 行列を表しています。 それぞれの数値記入欄に直接任意の数値を入れてください。
計算結果をこの数で除算します。 1 は計算結果を変更しない値ですがめったに使われないでしょう。 行列の大きさである 9 や 25 は画素の値の平均で割ります。
この値は除算のあとで加わります。 負の値が出てよい場合に便利です。 ここに負の値も設定できます。
端緒画素が画像の縁にあるとカーネルの一部が画像からはみ出してしまいます。 このときフィルタはどうすべきかを設定します。
左から順に、 元画像、 拡張、 回り込み、 切抜き
カーネルのはみ出した部分は無視されます。
カーネルのはみ出した部分は反対側の縁の画素を読み取りますので、 一方の辺で消えた画素がもう一方の辺で復活することになります。
画像の縁の画素は変更されず切り抜かれます。
ここでフィルタの操作対象に一つ乃至は複数のチャンネルを選べます。
このオプションを有効にすると「割る数」は算出数に応じた値がとられます。 ただしその値が 0 になった場合は (0 では除算できません)、 オフセット値に 128 が設定されます。 負の数となるときは (負の数の色はありません)、 オフセットに 255 が設定され (反転した結果になり) ます。
このオプションを無効にするとこのフィルタは透明度を考慮しませんが、 ぼかしがかかったときに加工痕が現れるおそれがあります。