8.2. コンボリューション行列...

8.2.1. 概観

ここは数学者の独壇場です。 フィルタはほとんどがコンボリューション行列を使用しています。 コンボリューション行列... フィルタと想像力があればどんなフィルタも創れます。

コンボリューション (二次元畳み込み) 行列とは何なのでしょう。 数学の小道具をちょっとばかり知っていただければ大まかな理解が可能です。 コンボリューションとは行列式をカーネルと呼ばれる別の行列式で処理することです。

コンボリューション行列フィルタはを処理する最初の行列を使います。 像とは画素を縦横の座標に並べた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ピクセル下に移動しました。

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

画像ウィンドウのメニューより フィルタ汎用コンボリューション行列...

8.2.3. オプション

図16.148 コンボリューション行列のオプション

「コンボリューション行列」のオプション

行列

これは 5×5 行列を表しています。 それぞれの数値記入欄に直接任意の数値を入れてください。

割る数

計算結果をこの数で除算します。 1 は計算結果を変更しない値ですがめったに使われないでしょう。 行列の大きさである 9 や 25 は画素の値の平均で割ります。

オフセット

この値は除算のあとで加わります。 負の値が出てよい場合に便利です。 ここに負の値も設定できます。

境界

端緒画素が画像の縁にあるとカーネルの一部が画像からはみ出してしまいます。 このときフィルタはどうすべきかを設定します。

左から順に、 元画像、 拡張回り込み切抜き

拡張

カーネルのはみ出した部分は無視されます。

回り込み

カーネルのはみ出した部分は反対側の縁の画素を読み取りますので、 一方の辺で消えた画素がもう一方の辺で復活することになります。

切抜き

画像の縁の画素は変更されず切り抜かれます。

チャンネル

ここでフィルタの操作対象に一つ乃至は複数のチャンネルを選べます。

正規化

このオプションを有効にすると割る数は算出数に応じた値がとられます。 ただしその値が 0 になった場合は (0 では除算できません)、 オフセット値に 128 が設定されます。 負の数となるときは (負の数の色はありません)、 オフセットに 255 が設定され (反転した結果になり) ます。

アルファ加重

このオプションを無効にするとこのフィルタは透明度を考慮しませんが、 ぼかしがかかったときに加工痕が現れるおそれがあります。

8.2.4. 使用例

カーネル行列の設計は高度な数学の裏打ちがあります。 出来合いのものがウェブ上で見付かるはずです。 それらの例を少しばかりご覧ください。

図16.149 シャープ化

シャープ化
シャープ化

図16.150 ぼかし

ぼかし
ぼかし

図16.151 輪郭強調

輪郭強調
輪郭強調

図16.152 輪郭抽出

輪郭抽出
輪郭抽出

図16.153 エンボス加工

エンボス加工
エンボス加工